Gunicorn: Aumento de la memoria después de una ejecución prolongada del servicio

Creado en 10 oct. 2018  ·  3Comentarios  ·  Fuente: benoitc/gunicorn

HOLA :
Utilizo flask + gunicorn para hacer un servicio de API. Como quiero compartir una gran cantidad de datos entre procesadores de trabajo, inicio los datos en gunicorn.conf y uso "gunicorn -c gunicorn.conf" para finalizarlo. Cualquier dato en gunicorn.conf se haría solo una vez, por lo que cada procesador trabajador comparte un gran dato común. El big data en mi programa solo está listo, sin operación de escritura. Pero cuando inicio mi servicio y ejecuto mucho tiempo, en algún momento la memoria aumenta 1G repentinamente, supongo que puede haber alguna operación de escritura en gunicorn debido al mecanismo de copia sobre escritura del sistema. ¿Y cómo comparto el big data entre procesadores trabajadores? Todavía estoy confundido por este problema, espero tu respuesta !!! ¡Gracias!

Comentario más útil

Esto está relacionado con # 1640.

La única otra forma de manejar esto sería hacer algo que evite la administración de memoria de Python. Quizás el módulo mmap pueda ayudar.

Todos 3 comentarios

Esto está relacionado con # 1640.

La única otra forma de manejar esto sería hacer algo que evite la administración de memoria de Python. Quizás el módulo mmap pueda ayudar.

¡¡¡Gracias!!! ¡Es muy útil!

HOLA:
Con la información que me da, actualizo mi python de 2.7 a 3.7 y uso gc.freeze () para evitar algunos objetos recolectados por el recolector de basura. Esta vez, no parece que "la memoria aumente 1G repentinamente", pero sí que la memoria crece lentamente utilizando cada subprocesador, la memoria aumenta 500M + y luego deja de crecer. Creo que gc.freeze () funciona y tiene una apariencia de memoria diferente. Espero que el trabajo que he realizado sea útil para otras personas. Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones