¿Conoces una forma eficiente de registrar el uso de la memoria de una aplicación django por solicitud?Cómo registrar el uso de la memoria de una aplicación Django por solicitud
Tengo una pila apache/mod_wsgi/django, que normalmente funciona bien, pero a veces un proceso termina consumiendo una gran cantidad de memoria. Los servidores terminan siendo cortos en mem, intercambiando mucho, y los servicios se reducen drásticamente.
Esta situación es bastante difícil de solucionar porque no sé qué pedido se debe a este comportamiento, no puedo reproducirlo.
Me gustaría tener algo implementado en producción que registre el uso de la memoria del proceso antes y después de cada solicitud, con una sobrecarga mínima.
Antes de empezar a reinventar la rueda, hacer la comunidad de mis compañeros djangoists conozco a ninguna solución existente para hacer frente a este problema? Apreciación de los advices, middleware, snippet o tal vez configuración de registro de Apache.
Lo que (creo) que no necesito es:
- un conjunto de herramientas de perfilado/dev depuración etapa, que ya saben algunos y que haría uso de ellos si yo sabía qué perfil/depurar, parece un poco demasiado para supervisar para siempre los servicios que se ejecutan en producción. Además de eso, lo que usualmente muestran esos usuarios es un informe de uso de memoria del código fragmentado en pedazos. Sería realmente útil simplemente identificar la solicitud defectuosa.
- consejos genéricos sobre cómo optimizar el uso de mem de una aplicación django, bueno, siempre es bueno leer, pero la idea aquí es más bien "cómo rastrear eficientemente las solicitudes que deben optimizarse".
Mis más próximos resultados de la búsqueda:
- Django/WSGI - How to profile partial request? My profiling tools are per-request but app runs out of memory before then
- Django memory usage going up with every request
- Average php memory usage per request?
Tal vez esta opción de modmsgi 'maximum-requests = nnn' ayude. "Define un límite en el número de solicitudes que un proceso daemon debe procesar antes de que se cierre y se reinicie." – freestyler
@freestyler: sí, ya lo uso, pero pasa algo por alto. La idea es aclarar las solicitudes defectuosas para realmente arreglarlas, no para desinfectar el sistema periódicamente (lo que también podría ser útil). Además, una solicitud de consumo de memoria podría aparecer temprano después de un reinicio, sin correlación aquí. – ddelemeny