In Linux, ci sono limiti definiti dal sistema per tutto ciò che consuma risorse. Ad esempio, ci sono limiti su quanti argomenti possono essere passati a un determinato comando, quanti thread possono essere eseguiti contemporaneamente, ecc.
Allo stesso modo, esiste un limite al numero di file aperti. Come forse saprai, un file aperto viene utilizzato attivamente in alcuni degli altri programmi e quindi consuma memoria.
Puoi visualizzare e modificare il limite del file aperto con il comando 'ulimit '.
Ora, ci sono due tipi di limiti definiti:limite rigido e Limite soft .
- Il limite rigido per i file aperti è un valore impostato staticamente e può essere modificato solo da 'root ' utente di Linux.
- Il limite morbido è uno che può essere modificato dai processi in modo dinamico, cioè in runtime, se il processo ha bisogno di più file aperti del numero consentito dal soft limit.
Inutile dire che un limite morbido è qualcosa che potrebbe causare problemi di sicurezza.
Controlla i limiti dei file aperti in Linux
Per visualizzare o elencare il limite rigido di file, esegui:
$ ulimit -Hn
Allo stesso modo, per la visualizzazione di limite morbido , esegui:
$ ulimit -Sn
Qui la 'S'
e 'H'
stanno rispettivamente per limiti soft e hard, mentre 'n'
denota il numero di file aperti.
Modifica i limiti dei file aperti in Linux
Proviamo ora a modificare questi limiti semplicemente aggiungendo un terzo argomento per il nuovo valore del limite dopo 'Sn'
o 'Hn'
.
$ ulimit -Sn 5000 $ ulimit -Hn 5000
Tuttavia, i limiti così modificati restano temporaneamente modificati fino all'apertura della sessione (cioè del terminale). Segui i passaggi seguenti per modificare in modo permanente i limiti.
Imposta in modo permanente i limiti di file aperti in Linux
Apri il file '/etc/security/limits.conf ' in 'vim ' o qualsiasi editore di tua scelta. Nota che questo è un file protetto da scrittura e dovrebbe essere aperto con "sudo ' o come amministratore.
$ sudo vim /etc/security/limits.conf
Si noti che i limiti possono essere impostati per tutti gli utenti o per singoli utenti. La sintassi per impostare un limite rigido è:
* hard nofile 5000
Il '*'
significa che il limite è per tutti gli utenti. La seconda stringa sulla riga è un tipo di limite, che è 'hard' in questo caso.
La terza stringa è il limite che vogliamo modificare. Nel nostro caso, è 'nofile' , ovvero il numero di file. In questo modo è possibile impostare anche altri limiti qui, ad es. 'noproc' per una serie di processi. Infine, la quarta stringa è il nuovo limite da impostare per il numero di file.
Se desideri impostare il limite solo per un determinato utente, puoi farlo in questo modo:
abhi soft nofile 5000
Qui 'abhi' è il nome dell'utente.
Ora aggiungeremo queste righe al file e poi vedremo se il limite è stato modificato.
Salva ed esci dal file.
Questi limiti richiederanno all'utente di disconnettersi e riconnettersi, poiché i limiti precedenti vengono ancora presi in considerazione durante l'esecuzione dei programmi. Esegui ulimit nuovamente per verificare se i limiti sono effettivamente cambiati.
$ ulimit
Conclusione
In questo articolo abbiamo visto come modificare il limite al numero di file aperti in Linux. Esegui 'ulimit --help'
se vuoi conoscere il comando in modo più dettagliato.
Grazie per la lettura e facci sapere i tuoi pensieri o domande nei commenti qui sotto!