Come posso osservare cosa sta facendo nginx? (per risolvere: "1024 worker_connections non sono sufficienti")


8

Ho un sito a traffico molto basso in esecuzione su nginx, con 4 dipendenti, 1024 connessioni ciascuno.

Ogni diverse ore comincio a vedere nel registro degli errori "1024 worker_connections non sono sufficienti" e il mio sito rallenta / diventa flakey. Un riavvio di nginx risolve completamente il problema per le successive ore.

Chiaramente sta accadendo qualcosa di strano, non c'è modo di servire 4k utenti simultanei della mia applicazione.

Oltre a guardare il registro di accesso (che sembra normale), c'è un modo per osservare con maggiori dettagli cosa sta facendo nginx?

Esiste una nota combinazione di configurazione che potrebbe far sì che le vecchie connessioni vengano mantenute aperte e non chiuse?

Grazie.

modifica questo non sembra giusto

# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271

stai usando proxypass?
Dan R,

No, non sto usando alcun tipo di configurazione proxy. È un sito di binari sul passeggero.
John Bachir,

1
Forse prova nginx.org/en/docs/debugging_log.html abilitandolo per vedere con quali richieste succede. Non ho familiarità con passeggeri / rotaie. Se questo si trova sulla porta che si collega ai client Web, il client ha chiuso la connessione ma nginx non si è chiuso su un lato.
Dan R,

Risposte:


7

Senza proxy proxy / proxy inverso

max_clients = worker_processes * worker_connections

Con proxy inverso

max_clients = (worker_processes * worker_connections ) / (X * 2)

2 è perché si apre una connessione a ciò che si sta proxy

X è tuttavia molte connessioni simultanee che questi client ti stabiliscono

Per vedere quali connessioni sono sospese, potresti correre lsof -i :PORT. Mostrerà tutte le connessioni aperte a nginx e il loro stato.


provando che ... lsof 4.81 su Ubuntu ... "personaggio opzione illegale: I"
John Bachir

vedi lsof output nella modifica sopra
John Bachir il

1
non intendeva capitalizzare il -i
Dan R
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.