Come aumentare il numero massimo di file aperti su linux

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

  1. 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
  2. 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.
  3. 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

 

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *