Budgetlæg NGINX-proxysockets, før du hæver worker_connections
En proxet forbindelse bruger typisk både en klient- og en upstream-socket; skeln workerens forbindelsesgrænse fra tjenestens grænse for filbeskrivere.
En langvarig proxet forbindelse optager typisk to sockets: klientens og upstreamens. worker_connections tæller begge sider. At gange det med worker_processes giver derfor ikke et løfte om kapacitet til proxybrugere.
Når forbindelser fejler, følg den rapporterede grænse:
| Bevis | Indstilling eller procestilstand, der skal undersøges |
|---|---|
| udtømning af worker_connections | Workerens forbindelsesbudget, inklusive upstream-sockets |
| Operativsystemets “For mange åbne filer” | Grænsen for filbeskrivere, som den faktiske tjenesteproces arver |
Lyttesockets, logfiler og andre åbne filer bruger også deskriptorer. Genbrug af forbindelser og trafikmikset ændrer forholdet mellem brugere og sockets.
worker_rlimit_nofile justerer workerens grænser inden for miljøets tilladelser. En systemd-unit kan sætte LimitNOFILE; ulimit i en interaktiv shell ændrer ikke den kørende tjeneste.
Tilpas grænserne til arbejdsbelastningen, og undersøg, hvem der forbruger dem. Uventede klienter eller gentagne upstream-fejl kan tømme et budget, der tidligere var tilstrækkeligt. Et større procesantal eller hukommelsesloft reparerer ikke en mangel på deskriptorer.