Buongiorno a tutti, oggi ho pensato di condividere una soluzione a un problema che mi capita spesso sotto linux, il numero di Max open files.
Innanzi tutto vediamo di capire come funziona la cosa, esistono due limiti, un soft e un hard . Il soft è il massimo base per processo, il quale però puo richiedere in caso di necessità di raggiungere l’hard limit. Il soft limit va quindi settato inferiore o uguale all’hard.
Elencati qui sotto alcuni metodi per modificare tali parametri
- editare il file /etc/security/limits.conf modificando il limite
* hard nofile 420000
* soft nofile 420000
root hard nofile 420000
root soft nofile 420000
Qui possiamo aggiungere dei limiti specifici per utente e quelli generali. Dopo aver salvato il file potete verificare l’effettivo aumento con i seguenti comandi:
ulimit -Hn
ulimit -Sn - Modificare il numero massimo a livello generale, editando il file /etc/sysctl.conf e aggiungendo la seguente riga:
fs.file-max = 2097152
Usate il comando sysctl -p per verificare che la modifica sia effettiva. - Su alcune distro, sarà necesssario verificare che in /etc/pam.d/system-auth siano presenti le seguenti righe:
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.soSu ubuntu server va inoltre specificato in /etc/pam.d/common-session aggiungendo:
session required pam_limits.so
Potete verificare che un processo specifico stia rispettando i nuovi limiti con:
ps ax | grep <nomeprocesso>
cat /proc/<PID PROCESSO>/limits
Molte volte mi è successo che un demone si rifiutasse di prendere in considerazione i nuovi limiti senza effettuare un reboot (cosa che in prod è inpensabile), per ovviare a questo, potete usare il seguente comando:
prlimit –pid <PID PROCESSO> –nofile=8192:16384
I numeri sono un esempio, essi riguardano rispettivamente il softlimit:hardlimit
Lascia un commento
Devi essere connesso per inviare un commento.