Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

424
Vistas
Cómo configurar el número de trabajador de gunicorn en un pod de kubernetes

Estoy ejecutando una aplicación de flask con clase de trabajador gunicorn y gevent . En mi propio entorno de prueba, sigo la guía oficial multiprocessing.cpu_count() * 2 + 1 para establecer el número de trabajador.

Si quiero poner la aplicación en el pod de Kubernetes y asumir que los recursos serán como

 resources: limits: cpu: "10" memory: "5Gi" requests: CPU: "3" memory: "3Gi"

¿Cómo calcular el número de trabajadores? ¿Debo usar límites de CPU o solicitudes de CPU?


PD. Estoy lanzando la aplicación a través de un archivo binario empaquetado por pyinstaller , en esencia, flask run(python script.py) y lanzar gunicorn en el hilo principal:

 def run(): ... if config.RUN_MODEL == 'GUNICORN': sys.argv += [ "--worker-class", "event", "-w", config.GUNICORN_WORKER_NUMBER, "--worker-connections", config.GUNICORN_WORKER_CONNECTIONS, "--access-logfile", "-", "--error-logfile", "-", "-b", "0.0.0.0:8001", "--max-requests", config.GUNICORN_MAX_REQUESTS, "--max-requests-jitter", config.GUNICORN_MAX_REQUESTS_JITTER, "--timeout", config.GUNICORN_TIMEOUT, "--access-logformat", '%(t)s %(l)s %(u)s "%(r)s" %(s)s %(M)sms', "app.app_runner:app" ] sys.exit(gunicorn.run()) if __name__ == "__main__": run()

PD. Ya sea que establezca el número de trabajadores por limits CPU (10*2+1=21) o requests CPU (3*2+1=7) , el rendimiento aún no puede alcanzar mis expectativas. Cualquier sugerencia de prueba para mejorar el rendimiento será bienvenida en estas preguntas.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Cómo calcular el número de trabajadores? ¿Debo usar límites de CPU o solicitudes de CPU?

Eso depende de tu situacion. Primero, mire la documentación sobre solicitud y límites (este ejemplo es para memoria, pero lo mismo es para CPU).

Si el nodo donde se ejecuta un pod tiene suficiente recurso disponible, es posible (y está permitido) que un contenedor use más recursos de los que especifica su request para ese recurso. Sin embargo, un contenedor no puede usar más que su limit de recursos.

Por ejemplo, si establece una solicitud de memory de 256 MiB para un contenedor y ese contenedor está en un pod programado para un nodo con 8 GiB de memoria y ningún otro pod, entonces el contenedor puede intentar usar más RAM.

Si establece un límite de memory de 4 GiB para ese contenedor, el kubelet (y el tiempo de ejecución del contenedor ) imponen el límite. El tiempo de ejecución evita que el contenedor use más del límite de recursos configurado. Por ejemplo: cuando un proceso en el contenedor intenta consumir más de la cantidad de memoria permitida, el kernel del sistema finaliza el proceso que intentó la asignación, con un error de falta de memoria (OOM).

Respondiendo a su pregunta: en primer lugar, necesita saber cuántos recursos (por ejemplo, CPU) necesita su aplicación. La solicitud será la cantidad mínima de CPU que la aplicación debe recibir (tiene que calcular este valor usted mismo. En otras palabras, debe saber cuánto necesita la aplicación de CPU mínima para ejecutarse correctamente y luego debe establecer el valor). Para Por ejemplo, si su aplicación funcionará mejor cuando reciba más CPU, considere agregar un límite (esta es la cantidad máxima de CPU que una aplicación puede recibir). Si desea calcular el número de trabajadores en función del rendimiento más alto, use el limit para calcular el valor. Si, por el contrario, desea que su aplicación funcione sin problemas (quizás no tan rápido como sea posible, pero consumirá menos recursos), use el tipo de request .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda