Begroot NGINX-proxysockets voordat je worker_connections verhoogt
Een geproxiede verbinding gebruikt meestal zowel een client- als een upstream-socket; onderscheid de verbindingslimiet van de worker van de bestandsdescriptorslimiet van de dienst.
Een langdurige geproxiede verbinding bezet meestal twee sockets: die van de client en die van de upstream. worker_connections telt beide kanten. Het vermenigvuldigen met worker_processes belooft dus geen capaciteit voor proxygebruikers.
Wanneer verbindingen falen, volg de gerapporteerde limiet:
| Bewijs | Instelling of procestoestand om te inspecteren |
|---|---|
| uitputting van worker_connections | Het verbindingsbudget van de worker, inclusief upstream-sockets |
| Bericht van het besturingssysteem „Te veel open bestanden“ | De bestandsdescriptorslimiet die het daadwerkelijke serviceproces erft |
Luistersockets, logs en andere open bestanden verbruiken ook descriptors. Hergebruik van verbindingen en de verkeersmix veranderen de relatie tussen gebruikers en sockets.
worker_rlimit_nofile past de workerlimieten aan binnen de rechten van de omgeving. Een systemd-unit kan LimitNOFILE instellen; ulimit in een interactieve shell verandert de draaiende dienst niet.
Stem de limieten af op de werklast en onderzoek wie ze verbruikt. Onverwachte clients of herhaaldelijk falende upstream-verbindingen kunnen een eerder toereikend budget uitputten. Een hoger procesaantal of geheugenlimiet verhelpt een tekort aan descriptors niet.