Antecedentes:Python: ¿Cómo se puede encontrar el consumo de CPU para una pieza de código?
que tiene una aplicación de Django, funciona y responde bastante bien a baja carga, pero en alta carga como 100 usuarios/seg, que consume el 100% de la CPU y luego debido a la falta de CPU se ralentiza .
Problema:
- perfilar la aplicación me da tiempo empleado por funciones.
- Este tiempo aumenta en alta carga.
- El tiempo consumido puede deberse a un cálculo complejo o a la espera de la CPU.
Entonces, ¿cómo encontrar los ciclos de CPU consumidos por un fragmento de código?
Dado que, reducir el consumo de CPU aumentará el tiempo de respuesta.
- que podría haber escrito extremadamente código eficiente y necesita agregar más potencia de CPU
O
- que podría tener algún código estúpida teniendo la CPU y causando la desaceleración?
¡Se agradece cualquier ayuda!
Actualización:
- estoy usando Jmeter al perfil de mi aplicación web, me da un rendimiento de 2 peticiones/seg. [100 usuarios]
- Obtengo un tiempo promedio de 36 segundos en 100 solicitudes frente a 1.25 segundos en una solicitud.
Más información
- configuración de Nginx + Uwsgi con 4 trabajadores
- Sin base de datos utilizada, usando una respuestas de una API REST
- El primero golpeó la respuesta del API REST se almacena en caché , por lo tanto, no hace la diferencia.
- Usando
ujson
para el análisis JSON.
curiosidad de saber:
- Python Django es utilizado por muchos orgs para tantos sitios grandes, entonces tiene que haber algunas herramientas de análisis de depuración de memoria/CPU de gama alta.
- Todos los que encontré fueron fragmentos de código ocasionales que realizan perfiles.
Mi primer paso en la creación de perfiles es ver * qué función (s) * se usa la mayor parte del tiempo, y se investiga por qué, si está justificado, y si/cómo se puede reducir. La * cantidad * de tiempo (a menudo) no es tan importante como la * cantidad proporcional * de tiempo. –
Todo el tiempo tomado parece estar distribuido en toda la aplicación. Ningún punto específico parece ser un área problemática. –
¿Parece? ¿Hiciste mediciones exactas? Consulte http://stackoverflow.com/a/582337/851737 para obtener ayuda. – schlamar