2016-06-02 23 views
5

Come si imposta worker_rlimit_nofile su un numero superiore e qual è il maxium che può essere o si consiglia di essere?Nginx worker_rlimit_nofile

che sto cercando di seguire i seguenti consigli:

La seconda più grande limitazione che la maggior parte delle persone in esecuzione è anche relative al vostro sistema operativo. Aprire una shell, su per l'utente nginx viene eseguito come e quindi eseguire il comando ulimit -a. Questi valori sono tutti i limiti nginx non può superare. In molti sistemi predefiniti il ​​valore dei file aperti è piuttosto limitato, su un sistema che ho appena controllato era impostato su 1024. Se nginx si imbatte in una situazione in cui raggiunge questo limite, verrà registrato l'errore (24: Troppi file aperti) e restituire un errore al client. Ovviamente nginx è in grado di gestire molto più di 1024 file e le probabilità sono pari a . Puoi tranquillamente aumentare questo valore.

Per fare ciò è possibile impostare il limite con ulimit oppure è possibile utilizzare worker_rlimit_nofile per definire il limite del descrittore di file aperto desiderato.

Da: https://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/

risposta

5

worker_rlimit_nofile = worker_connections * worker_processes

+1

Anche se il [nginx docs] (http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile) non sono 100 Chiaramente, a quanto pare, 'worker_rlimit_nofile' è [applicato a ciascun lavoratore] (https://www.masv.io/boost-nginx-connection-limits/). Quindi non ha senso moltiplicare con 'worker_processes'. Ma potrebbe essere necessario moltiplicare per 2, dal momento che un lavoratore ha bisogno di 2 descrittori di file per connessione - uno per il client, uno per il file servito (o upstream, proxy ...). – Bbak