Se si ottiene l’errore” Troppi file aperti (24)”, l’applicazione/comando/script sta raggiungendo il limite massimo di file aperti consentito da linux. È necessario aumentare il limite di file aperto come di seguito:
Aumenta il limite
Limite per utente
Apri file: /etc/security/limits.conf
Incolla seguendo verso la fine:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 è giusto numero. Non sono sicuro di quale sia il limite massimo, ma 999999 (Six-9) ha funzionato per me una volta per quanto mi ricordo.
Una volta salvato il file, potrebbe essere necessario disconnettersi e accedere di nuovo.
pam-limits
Ho letto in molti punti che è necessario un passaggio extra per il limite da modificare per i processi daemon. Non avevo ancora bisogno di seguire, ma se le modifiche di cui sopra non funzionano per te, puoi provare.
Apri /etc/pam.d/common-session
Aggiungi la riga seguente:
session required pam_limits.so
Limite a livello di sistema
Imposta questo limite superiore al limite utente impostato sopra.
Apri /etc/sysctl.conf
Aggiungi seguente:
fs.file-max = 2097152
Corri:
sysctl -p
Sopra aumenterà il numero “totale” di file che possono rimanere aperti a livello di sistema.
Verificare Nuovi Limiti
Utilizzare il seguente comando per vedere il limite massimo di descrittori di file:
cat /proc/sys/fs/file-max
Limite Rigido
ulimit -Hn
Soft Limit
ulimit -Sn
se sei loggato come root:
Controllare limite per l’altro utente
sostituire www-data
da linux nome utente che si desidera controllare con limiti per:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Controllare i limiti di un processo in esecuzione:
Trovare process id (PID):
ps aux | grep process-name
Supponiamo, XXX è il PID, quindi eseguire i seguenti comandi per controllare i limiti di:
cat /proc/XXX/limits