Come impostare ulimit e file descrittori limite sui server Linux

Introduzione: Sfide come numero di file aperti in qualsiasi ambiente di produzione è diventato comune ora un giorno. Poiché molte applicazioni basate su Java e Apache sono installate e configurate, il che potrebbe portare a troppi file aperti, descrittori di file ecc. Se questo supera il limite predefinito impostato, si possono incontrare problemi di controllo degli accessi e problemi di apertura dei file. Molti ambienti di produzione vengono a standstill tipo di situazioni a causa di questo.

ulimit-number-openfiles-linux-server

Fortunatamente, abbiamo il comando “ulimit” in uno qualsiasi dei server basati su Linux, con il quale si può vedere/set/get numero di file aperti dettagli di stato / configurazione. Questo comando è dotato di molte opzioni e con questa combinazione si può impostare il numero di file aperti. Di seguito sono riportati i comandi passo-passo con esempi spiegati in dettaglio.

Per vedere qual è il limite di file aperto presente in qualsiasi sistema Linux

Per ottenere il limite di file aperto su qualsiasi server Linux, eseguire il seguente comando,

# cat /proc/sys/fs/file-max146013

Il numero sopra mostra che l’utente può aprire il file ‘146013’ per sessione di accesso utente.

# cat /proc/sys/fs/file-max149219# cat /proc/sys/fs/file-max73906

Questo indica chiaramente che i singoli sistemi operativi Linux hanno un numero diverso di file aperti. Questo si basa su dipendenze e applicazioni che sono in esecuzione nei rispettivi sistemi.

comando ulimit :

Come suggerisce il nome, ulimit (limite utente) viene utilizzato per visualizzare e impostare il limite di risorse per l’utente connesso.Quando eseguiamo il comando ulimit con l’opzione-a, stamperà il limite di tutte le risorse per l’utente connesso. Ora eseguiamo “ulimit-a”sui sistemi Ubuntu / Debian e CentOS,

Ubuntu / Debian System,

shashi@Ubuntu ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5731max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024 pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5731virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited

CentOS System

shashi@centos ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5901max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5901virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited

Come possiamo vedere qui diversi sistemi operativi hanno diversi limiti impostati. Tutti questi limiti possono essere configurati / modificati usando il comando “ulimit”.

Per visualizzare la singola risorsa limite poi passare il singolo parametro nel comando ulimit, alcuni parametri sono elencati di seguito:

  • ulimit -n –> verrà visualizzato il numero di file aperti limite
  • ulimit -c –> E visualizzare le dimensioni del file core
  • umilit -u –> Verrà visualizzato l’utente la massima limite del processo per l’utente connesso.
  • ulimit-f – > Mostrerà la dimensione massima del file che l’utente può avere.
  • umilit-m – > Visualizzerà la dimensione massima della memoria per l’utente connesso.
  • ulimit-v – > Visualizzerà il limite massimo di dimensione della memoria

Usa i comandi seguenti controlla i limiti rigidi e morbidi per il numero di file aperti per l’utente connesso

shashi@Ubuntu ~}$ ulimit -Hn1048576shashi@Ubuntu ~}$ ulimit -Sn1024

Come risolvere il problema quando è stato raggiunto il limite sul numero di file massimi ?

Supponiamo che il nostro server Linux abbia raggiunto il limite del numero massimo di file aperti e voglia estendere tale limite a livello di sistema, ad esempio vogliamo impostare 100000 come limite del numero di file aperti.

Usa il comando sysctl per passare fs.parametro file-max al kernel al volo, esegui sotto comando come utente root,

root@ubuntu~]# sysctl -w fs.file-max=100000fs.file-max = 100000

Sopra le modifiche saranno attive fino al prossimo riavvio, quindi per rendere queste modifiche persistenti durante il riavvio, modifica il file/etc / sysctl.conf e aggiungi lo stesso parametro,

root@ubuntu~]# vi /etc/sysctl.conffs.file-max = 100000

salva e esci dal file,

Esegui il comando sotto per rendere immediatamente effettive le modifiche precedenti senza disconnettersi e riavviare.

root@ubuntu~]# sysctl -p

Ora verificare se le nuove modifiche sono in vigore o meno.

root@ubuntu~]# cat /proc/sys/fs/file-max100000

Utilizzare sotto il comando per scoprire quanti descrittori di file sono attualmente in uso:

# more /proc/sys/fs/file-nr1216 0 100000

Nota:- Comando “sysctl-p” viene utilizzato per commettere le modifiche senza riavvio e logout.

Imposta il limite di risorse a livello utente tramite limit.conf file

” / etc / sysctl.il file conf ” viene utilizzato per impostare il limite di risorse a livello di sistema, ma se si desidera impostare il limite di risorse per utenti specifici come Oracle, MariaDB e Apache, questo può essere ottenuto tramite “/etc/security/limits.conf ” file.

Limite del campione.conf è mostrato di seguito

root@ubuntu~]# cat /proc/sys/fs/file-max

Limiti-conf-linux-part1

Limiti-conf-linux-part2

Supponiamo di voler impostare hard e soft limite sul numero di file aperti per linuxtechi utente e per l’utente di oracle set di soft e hard limite sul numero di elaborare, modificare il file “/etc/security/limits.conf ” e aggiungere le seguenti righe

# hard limit for max opened files for linuxtechi userlinuxtechi hard nofile 4096# soft limit for max opened files for linuxtechi userlinuxtechi soft nofile 1024# hard limit for max number of process for oracle useroracle hard nproc 8096# soft limit for max number of process for oracle useroracle soft nproc 4096

Salva & esci dal file.

Nota: Nel caso in cui si desideri inserire il limite di risorse su un gruppo anziché sugli utenti, può anche essere possibile tramite limit.file conf, in luogo di nome utente , digitare @<Nome_gruppo> e il resto degli elementi stessi, ad esempio è mostrato di seguito,

# hard limit for max opened files for sysadmin group@sysadmin hard nofile 4096 # soft limit for max opened files for sysadmin group@sysadmin soft nofile 1024

Verificare se le nuove modifiche sono in vigore o meno,

~]# su - linuxtechi~]$ ulimit -n -H4096~]$ ulimit -n -S1024~]# su - oracle~]$ ulimit -H -u8096~]$ ulimit -S -u4096

Nota: Altre majorly utilizzato il comando è “lsof”, che viene utilizzato per scoprire “come molti file vengono aperti attualmente”. Questo comando è molto utile per gli amministratori.

Conclusione:

Come menzionato nella sezione introduttiva, il comando “ulimit” è molto potente e aiuta a configurare e assicurarsi che le installazioni delle applicazioni siano più fluide senza colli di bottiglia. Questo comando aiuta a risolvere molte delle limitazioni di file nei server basati su Linux.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.