Una connessione proxiata di lunga durata occupa di solito due socket: quello del client e quello dell'upstream. worker_connections conta entrambi i lati. Moltiplicarlo per worker_processes non promette quindi capacità agli utenti del proxy.

Quando le connessioni falliscono, segui il limite segnalato:

ProvaImpostazione o stato del processo da ispezionare
esaurimento di worker_connectionsIl budget di connessioni del worker, inclusi gli socket upstream
Messaggio del sistema operativo «Troppi file aperti»Il limite di descrittori di file ereditato dal processo reale del servizio

Anche gli socket in ascolto, i log e gli altri file aperti consumano descrittori. Il riuso delle connessioni e la miscela di traffico cambiano il rapporto tra utenti e socket.

worker_rlimit_nofile regola i limiti del worker in base ai permessi dell'ambiente. Un'unità systemd può impostare LimitNOFILE; l'ulimit di una shell interattiva non cambia il servizio in esecuzione.

Dimensiona i limiti in base al carico e verifica chi li consuma. Client imprevisti o connessioni upstream che falliscono ripetutamente possono esaurire un budget prima sufficiente. Un numero di processi o un limite di memoria più alti non riparano una carenza di descrittori.

Articoli correlati