Naplánujte proxy sockety NGINX skôr, než zvýšite worker_connections
Proxované spojenie zvyčajne zaberá socket klienta aj upstreamu; rozlišujte limit spojení workeru od limitu deskriptorov súborov služby.
Jedno dlhodobé proxované spojenie zvyčajne zaberá dva sockety: klientsky a upstreamový. worker_connections počíta obe strany. Násobenie hodnotou worker_processes preto nesľubuje kapacitu používateľom proxy.
Keď spojenia zlyhávajú, riaďte sa hláseným limitom:
| Dôkaz | Nastavenie alebo stav procesu, ktorý treba preveriť |
|---|---|
| vyčerpanie worker_connections | Rozpočet spojení workeru vrátane upstream socketov |
| Správa operačného systému „Príliš mnoho otvorených súborov“ | Limit deskriptorov súborov, ktorý dedí skutočný proces služby |
Počúvacie sockety, logy a ďalšie otvorené súbory tiež spotrebúvajú deskriptory. Opätovné použitie spojení a zmes prevádzky menia vzťah medzi používateľmi a socketmi.
worker_rlimit_nofile upravuje limity workeru v medziach oprávnení prostredia. Unit systemd môže nastaviť LimitNOFILE; ulimit v interaktívnom shelli bežiaci službu nezmení.
Nastavte limity podľa záťaže a preverte, kto ich spotrebúva. Neočakávaní klienti alebo opakovane zlyhávajúce upstream spojenia môžu vyčerpať predtým postačujúci rozpočet. Väčší počet procesov alebo limit pamäte nedostatok deskriptorov neopraví.