Gunicorn não responde mais de 6 pedidos de cada vez

2

Para dar um contexto:

Eu tenho dois ambientes de servidor executando o mesmo aplicativo. O primeiro, que pretendo abandonar, é um ambiente padrão do Google App Engine que tem muitas limitações. O segundo é um cluster do Google Kubernetes executando meu aplicativo Python com o Gunicorn.

Concorrência

No primeiro servidor, posso enviar várias solicitações ao aplicativo e ele responderá muitas delas simultaneamente. Eu corri dois lotes de solicitações simultâneas contra o aplicativo em ambos os ambientes. No Google App Engine, o primeiro lote e o segundo foram respondidos simultaneamente e o primeiro não bloqueou o segundo.

No Kubernetes, o servidor responde apenas 6 simultaneamente e o primeiro lote bloqueia o segundo. Eu li alguns posts sobre como conseguir a simultaneidade do Gunicorn com o gevent ou o thread múltiplo, e todos eles dizem que eu preciso ter núcleos de CPU, mas o problema é que não importa quanta CPU eu coloquei nele, a limitação continua. Eu tentei os nós do Google de 1VCPU para 8VCPU e isso não muda muito.

Vocês podem me dar alguma ideia do que eu estou perdendo? Talvez a limitação dos nós do cluster do Google?

Cascata de resposta do Kubernetes

Como você pode notar, o segundo lote só começou a ser respondido depois que o primeiro começou a ser concluído.

CascataderespostadoAppEngine

ConfiguraçãodoGunicorn

Eutenteicomaclassepadrãocomaconfiguraçãorecomendada:2*núcleos+1parae12segmentos.

Eutambémtenteigeventcom--worker-connections2000.

Nenhumdelesfezdiferença.Ostemposderespostaforammuitosemelhantes.

Minhaseçãodocontêinerdoarquivodokubernetes:

spec:nodeSelector:cloud.google.com/gke-nodepool:default-poolcontainers:-name:python-gunicornimage:gcr.io/project-name/webapp:1.0command:-/env/bin/gunicorn---bind-0.0.0.0:8000-main:app---chdir-/deploy/app#---error-logfile#-"-"
          - --timeout
          - "7200"
          - -w
          - "3"
          - --threads
          - "8"
          #- -k
          #- gevent
          #- --worker-connections
          #- "2000"
    
por Mauricio 23.03.2018 / 16:33

0 respostas