variable template tag linebreaksbr get_template examples python django memory-leaks mod-wsgi

python - template - Uso de memoria Django subiendo con cada solicitud



linebreaksbr django (8)

Trasladé mi primer proyecto Django de DjangoEurope a Webfaction, y eso comenzó un problema que parecía una pérdida de memoria. Con cada solicitud de memoria, el uso del proceso del servidor aumenta aproximadamente 500 kb. Nunca baja Esto continúa hasta que Webfaction lo mata por usar demasiada memoria.

Puedo ver claramente esto cuando actualizo la interfaz de administración de Django en mi navegador (aunque esto ocurre con cada página, no solo con la interfaz de administración, sino que la interfaz de administración sería un buen caso de prueba, porque no hay mi código directamente allí) . Con cada recarga del navegador, el uso de la memoria aumenta un par de cientos de kilobytes.

Pruebo la memoria usando un comando sugerido por Webfaction:

ps -u publica -o rss,etime,pid,command

Más sobre mi configuración:

  • Django 1.1 (estable)
  • Configuración predeterminada de Django de Webfaction usando Apache y mod_wsgi
  • DEBUG configurado en False
  • MySQLdb 1.2.2 de Webfaction, pero después de escucharlo tuve algunos problemas, probé la versión 1.2.3c. No ayudo

Edición: creé un proyecto vacío de Django: la configuración predeterminada de Django más django.contrib.admin y la nueva base de datos vacía (lo intenté con mysql y postgresql). Comencé a recargar el administrador de Django en mi navegador y observé el uso de la memoria. Al principio vi que ocurría el problema: el uso de la memoria crecía después de cada recarga. Pero luego se estabilizó y dejó de crecer. Eso es coherente con el comportamiento de mi proyecto original en Django Europe. Desafortunadamente, en Webfaction nunca parece estabilizarse (o al menos no dentro de los límites de memoria disponibles para mi cuenta). ¿Algún consejo?


¿Los módulos mod_python y mod_wsgi están cargados en apache?

Sé que a mod_wsgi no le gusta tener mod_python en su construcción. Compruebe que no está cargado.


Me temo que no tengo respuestas definitivas. Los consejos de Graham Dumpleton fueron muy útiles, pero desafortunadamente no hizo una respuesta (solo comentarios), por lo que no hay forma de aceptar su respuesta.

Aunque todavía no he resuelto completamente el problema, aquí hay algunos consejos básicos para otras personas que tienen problemas similares:


También he tenido problemas con la memoria en Webfaction, pero realmente no aparecieron hasta que agregué mi quinta aplicación. Intenté algunos ajustes en mis configuraciones de apache, pero lo que finalmente me funcionó fue cambiar a mod_wsgi.


Tengo los mismos problemas con webfaction.

El método que utilizo, y qué webfaction me dijo que debería seguir utilizando, es ejecutar un trabajo cron que verifica la memoria cada 5 minutos aproximadamente y reinicia cualquier aplicación que esté fuera de control.

De las 4 aplicaciones de python en webfaction, tengo un promedio de 4 reinicios por día.


Tuvimos un problema similar en Webfaction, pero resultó que no fue por eso en absoluto. Hay un error en Django sobre el alto uso de memoria al usar el mapa del sitio con muchos elementos: http://code.djangoproject.com/ticket/11572

Cuando eliminamos el mapa del sitio, ya no se dispara a más de 90 Mb. Solo pensé que debería mencionarlo, ya que tomó mucho tiempo para usarlo para solucionar problemas.


Verifique si el backend del caché de memoria en proceso está habilitado, si es así, ese podría ser el problema (nuevas entradas de caché en cada solicitud).


Yo sugeriría no adivinar.

Eche un vistazo a http://code.google.com/p/django-dowser/ , es una aplicación muy útil para detectar fugas de memoria y determinar qué partes de su código son responsables del consumo de memoria.