Dimensionează socketurile proxy NGINX înainte de a crește worker_connections
O conexiune prin proxy ocupă de obicei atât un socket de client, cât și unul upstream; distinge limita de conexiuni a workerului de limita de descriptori de fișier a serviciului.
O conexiune prin proxy de lungă durată ocupă de obicei două socketuri: al clientului și al upstreamului. worker_connections numără ambele părți. De aceea, înmulțirea cu worker_processes nu promite capacitate utilizatorilor de proxy.
Când conexiunile eșuează, urmează limita raportată:
| Dovadă | Setare sau stare a procesului de inspectat |
|---|---|
| epuizarea worker_connections | Bugetul de conexiuni al workerului, inclusiv socketurile upstream |
| Mesajul sistemului de operare „Prea multe fișiere deschise” | Limita de descriptori de fișier moștenită de procesul real al serviciului |
Socketurile de ascultare, jurnalele și alte fișiere deschise consumă și ele descriptori. Reutilizarea conexiunilor și mixul de trafic schimbă relația dintre utilizatori și socketuri.
worker_rlimit_nofile ajustează limitele workerului în limitele permisiunilor mediului. O unitate systemd poate seta LimitNOFILE; ulimit dintr-un shell interactiv nu schimbă serviciul care rulează.
Dimensionează limitele în funcție de încărcare și verifică cine le consumă. Clienții neașteptați sau conexiunile upstream care eșuează repetat pot epuiza un buget anterior suficient. Un număr mai mare de procese sau o limită de memorie nu repară lipsa descriptorilor.