Quantos trabalhadores de aipo e gunicorn no mesmo servidor?

Quantos trabalhadores de aipo e gunicorn no mesmo servidor?

Eu tenho um servidor que executa um aplicativo Django servido por gunicorn e uma fila de tarefas do Celery.

Gunicórnioos documentos sugerem(2 x $num_cores) + 1 como o número padrão de trabalhadores.

Documentos de aipomostre que o número de trabalhadores do Celery é padronizado como 1 x $num_cores.

E ambos sugerem experimentar para encontrar o número adequado.

Minha pergunta é: qual seria uma boa regra para executar o Gunicorn e o Celery na mesma máquina? Em uma máquina de oito núcleos, devo começar com 17 trabalhadores Gunicorn e 8 trabalhadores Celery? Ou faria sentido começar com, digamos, 9 trabalhadores Gunicorn e 4 Celery?

O sistema está vinculado à CPU, caso isso ajude.

Responder1

Qualquer tipo de ajuste de desempenho costuma ser mais suave do que regras rígidas e rápidas. Recentemente tive que fazer algo semelhante com meu aplicativo Django que alguém decidiu abusar. Ao executar o Gunicorn e o Celery na mesma máquina, o ideal é começar com uma abordagem mais equilibrada, em vez de maximizar os trabalhadores do Gunicorn. Esta é a minha abordagem:

  • Trabalhadores Gunicórnio:

    • Comece com um número ligeiramente menor de trabalhadores Gunicorn usando a fórmula: 2 * $num_cores + 1
    • Para uma máquina de 8 núcleos, você pode começar com 8 a 12 trabalhadores Gunicorn
    • O raciocínio por trás disso é que você deseja ter certeza de que ainda restam alguns recursos de CPU para os trabalhadores do Celery, pois as tarefas do Celery podem consumir muito a CPU.
  • Trabalhadores de aipo:

    • Você pode usar o número 'recomendado' de trabalhadores do Celery
    • Pode ser definido como 1 * $num_cores
    • Para uma máquina de 8 núcleos, você pode começar com 8 trabalhadores Celery, por exemplo.

Portanto, em uma máquina de 8 núcleos, uma boa configuração inicial poderia ser assim:

  • Gunicórnio: 8-12 trabalhadores
  • Aipo: 8 trabalhadores

O objetivo é não sobrecarregar os trabalhadores do Gunicorn, deixando os recursos da CPU pelo menos para os trabalhadores do Celery.

informação relacionada