2011-09-25 27 views
7

¿Cómo sintonizas Django para un mejor rendimiento? ¿Hay alguna guía? Tengo las siguientes preguntas:Django Performance Tuning Tips?

  • ¿Es mod_wsgi la mejor solución?
  • ¿Hay alguna memoria caché de código de operación como en PHP?
  • ¿Cómo debo ajustar Apache?
  • ¿Cómo puedo configurar mis modelos, por lo que tengo menos/consultas más rápidas?
  • ¿Puedo usar Memcache?
+2

¿Tiene algún problema de rendimiento? –

Respuesta

4

Comentarios sobre algunas de sus preguntas:

Is mod_wsgi la mejor solución?

Apache/mod_wsgi es adecuado para la mayoría de las personas porque nunca tendrán suficiente tráfico para causar problemas incluso si Apache no se ha configurado correctamente. El servidor web generalmente nunca es el cuello de botella.

¿Hay alguna memoria caché de código de operación como en PHP?

Python almacena en caché el código compilado en la memoria y los procesos persisten entre las solicitudes. Por lo tanto, no necesita un producto de caché de código de operación separado como PHP, ya que es lo que Python hace de forma predeterminada. Solo debe asegurarse de no utilizar un mecanismo o configuración de alojamiento que pueda ocasionar que los procesos se descarten en cada solicitud o con demasiada frecuencia. No use CGI por ejemplo.

¿Cómo debo sintonizar Apache?

Sin saber nada acerca de su aplicación o el sistema que lo está hospedando en una, no puede proporcionarle una guía sencilla sobre cómo debe configurar Apache. Esto se debe a que entran en juego el rendimiento, la duración de las solicitudes, la cantidad de memoria utilizada, la cantidad de memoria disponible, el número de procesadores y mucho más. Si aún no ha escrito su aplicación, entonces simplemente está saltando la pistola aquí porque hasta que sepa más acerca de su aplicación y carga de producción no puede optimizar Apache de manera óptima.

Sin embargo, algunas sugerencias simples.

  • No aloje PHP en el mismo Apache.
  • Utilice Apache worker MPM.
  • Use el modo daemon mod_wsgi y el modo NOT embedded.

Esto solo le evitará causar demasiada pena para usted.

Si realmente necesita ajustar mejor su pila completa, es decir, la aplicación y el servidor web, y no solo la optimización prematura porque cree que va a tener la próxima FaceBook aunque realmente no haya escrito ningún código sin embargo, entonces necesita comenzar a buscar herramientas de monitoreo de rendimiento para determinar qué está haciendo su aplicación. Su aplicación y base de datos serán la fuente real de sus problemas y no el servidor web.

El tipo de herramienta de monitorización del rendimiento de la que estoy hablando es algo así como New Relic. Incluso entonces, si usted es muy joven y no tiene nada implementado, eso sería una pérdida de tiempo.En otras palabras, simplemente haga que su código funcione primero antes de preocuparse por cómo ejecutarlo de manera óptima.