Impostazione keepalive per Gunicorn dietro ELB senza Nginx


15

L'API REST della nostra app è fornita da Gunicorn ( non dietro Nginx) in esecuzione su istanze AWS EC2 con una tipica configurazione di ridimensionamento automatico / bilanciamento del carico. Il timeout di inattività del bilanciamento del carico è di 60 secondi e il timeout keep-alive di Gunicorn è di 2 secondi. Abbiamo visto 504 Gateway Timeoutrisposte sporadiche da questa configurazione. Secondo i documenti di Amazon , ciò può essere dovuto al fatto che il timeout keep-alive del server è inferiore all'impostazione del timeout di inattività del bilanciamento del carico:

Causa 2: istanze registrate che chiudono la connessione al bilanciamento del carico elastico.

Soluzione 2: abilitare le impostazioni keep-alive sulle istanze EC2 e impostare il timeout keep-alive su maggiore o uguale alle impostazioni di timeout di inattività del bilanciamento del carico.

Con Nginx, il valore predefinito keepalive_timeoutè 75 secondi, che a quanto pare funziona bene con le impostazioni predefinite ELB. Tuttavia, i documenti di Gunicorn raccomandano keepaliveun'impostazione nell'intervallo di 1-5 secondi.

Ha senso portare il keepalive di Gunicorn a 75 secondi, o c'è una buona ragione per tenerlo sotto i 5 secondi anche se non stiamo usando un proxy inverso di fronte?

Risposte:


16

Quasi sicuramente vorrai aumentare il timer keepalive secondo la raccomandazione ELB, poiché ELB riutilizza le connessioni. Li terrà fino alla scadenza del timeout e se un'altra richiesta arriva all'ELB, utilizzerà spesso una delle connessioni già aperte per inviarlo.

504 Gateway Timeout è un errore strano per questa condizione ma sembra che sia ciò che ELB restituisce quando il riutilizzo di una connessione coincide con la chiusura prematura del back-end.

La raccomandazione di 5 secondi potrebbe avere senso se i browser stavano comunicando direttamente con il back-end, ma questo non è il caso di ELB, che è esso stesso un proxy inverso corretto quando viene eseguito in modalità HTTP.


Grazie, questo è quello che sospettavo. Proverò questo cambiamento questa settimana e
segnerò la

Abbiamo unito il cambiamento circa una settimana fa e i 504 sono diventati molto meno comuni (un paio di volte a settimana anziché un paio di centinaia di volte a settimana).
handsofaten
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.