Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

432
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda