Ho avuto l'errore "troppi descrittori di file" apparentemente comune su nginx. Dopo molte ricerche, la soluzione è chiaramente quella di aumentare il numero di descrittori di file disponibili su nginx. Ma non ci sono abbastanza informazioni là fuori per farmi sentire a mio agio nel farlo in modo significativo e sicuro. Ecco i punti principali trattati dalla maggior parte dei thread di forum / e-mail:
- il sistema operativo ha il proprio limite di descrittore di file totale (sul mio sistema,
cat /proc/sys/fs/file-max
genera "100678") - anche ogni utente può avere il proprio limite (ma sul mio sistema, funzionando
ulimit
come qualsiasi utente produce "illimitato" vedi aggiornamento in fondo con maggiori dettagli ) - alcune persone hanno detto qualcosa in linea con quanto affermato da questa persona : "Direttiva worker_rlimit_nofile non specifica" quante ", è il limite del sistema operativo che lo fa. La direttiva worker_rlimit_nofile consente solo un modo rapido e sporco di ampliare questo limite se non è sufficiente. " Quindi suppongo che l'implicazione sia che è "meglio" impostare il limite per l'utente del sistema operativo nginx anziché nella configurazione?
Posso semplicemente inserire un valore worker_rlimit_nofile maggiore del numero di connessioni per lavoratore e chiamarlo un giorno, ma sento di non sapere davvero cosa sta succedendo qui.
- perché il limite per lavoratore dovrebbe essere inferiore al limite del sistema operativo?
- Come faccio a sapere qual è il mio limite ora?
aggiornamento : sia per utenti root che normali, output ulimit "illimitato", MA ulimit -Hn
ed ulimit -Sn
entrambi output 1024