Planirajte NGINX proxy sockete prije povećanja worker_connections
Proksirana veza obično zauzima i klijentski i upstream socket; razlikujte ograničenje veza workera od ograničenja datotečnih deskriptora servisa.
Jedna dugotrajna proksirana veza obično zauzima dva socketa: klijentski i upstream. worker_connections broji obje strane. Zato množenje s worker_processes ne daje obećanje kapaciteta korisnicima proxyja.
Kada veze ne uspijevaju, slijedite prijavljeno ograničenje:
| Dokaz | Postavka ili stanje procesa koje treba provjeriti |
|---|---|
| iscrpljenost worker_connections | Budžet veza workera, uključujući upstream sockete |
| Poruka operativnog sustava „Previše otvorenih datoteka“ | Ograničenje datotečnih deskriptora koje nasljeđuje stvarni proces servisa |
Sockets za slušanje, zapisi i druge otvorene datoteke također troše deskriptore. Ponovno korištenje veza i mješavina prometa mijenjaju odnos između korisnika i socketa.
worker_rlimit_nofile prilagođava ograničenja workera u granicama dopuštenja okruženja. systemd jedinica može postaviti LimitNOFILE; ulimit u interaktivnoj ljusci ne mijenja pokrenuti servis.
Dimenzionirajte ograničenja prema radnom opterećenju i provjerite tko ih troši. Neočekivani klijenti ili upstream veze koje stalno padaju mogu iscrpiti prije dovoljan budžet. Veći broj procesa ili ograničenje memorije ne popravlja nedostatak deskriptora.