Dimensiona els sockets de proxy de NGINX abans d'apujar worker_connections
Una connexió proxy acostuma a ocupar un socket de client i un d'upstream; distingeix el límit de connexions del worker del límit de descriptors de fitxer del servei.
Una connexió proxy de llarga durada acostuma a ocupar dos sockets: el del client i el de l'upstream. worker_connections compta les dues bandes. Per tant, multiplicar-lo per worker_processes no garanteix cap capacitat per als usuaris del proxy.
Quan les connexions fallen, seguiu el límit indicat:
| Evidència | Paràmetre o estat del procés que cal inspeccionar |
|---|---|
| esgotament de worker_connections | El pressupost de connexions del worker, incloent-hi els sockets d'upstream |
| Missatge del sistema operatiu «Massa fitxers oberts» | El límit de descriptors de fitxer que hereta el procés real del servei |
Els sockets d'escolta, els registres i altres fitxers oberts també consumeixen descriptors. La reutilització de connexions i la barreja de trànsit canvien la relació entre usuaris i sockets.
worker_rlimit_nofile ajusta els límits del worker segons els permisos de l'entorn. Una unitat de systemd pot definir LimitNOFILE; el ulimit d'un shell interactiu no canvia el servei en execució.
Dimensiona els límits segons la càrrega i comprova qui els consumeix. Clients inesperats o connexions d'upstream que fallen repetidament poden esgotar un pressupost que abans era suficient. Un nombre de processos o un límit de memòria més grans no reparen una manca de descriptors.