GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare ulimit e il limite dei descrittori di file sui server Linux

Introduzione:  Sfide come il numero di file aperti in qualsiasi ambiente di produzione sono diventate comuni ormai ogni giorno. Poiché molte applicazioni basate su Java e Apache vengono installate e configurate, il che potrebbe portare a troppi file aperti, descrittori di file ecc. Se questo supera il limite predefinito impostato, è possibile che si verifichino problemi di controllo dell'accesso e apertura dei file sfide. Molti ambienti di produzione si bloccano per questo motivo.

Fortunatamente, abbiamo "ulimit ” comando in uno qualsiasi dei server basati su Linux, tramite il quale è possibile vedere/impostare/ottenere il numero di file aperti sullo stato/dettagli di configurazione. Questo comando è dotato di molte opzioni e con questa combinazione è possibile impostare il numero di file aperti. Di seguito sono riportati i comandi passo passo con esempi spiegati in dettaglio.

Per vedere qual è l'attuale limite di file aperti in qualsiasi sistema Linux

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

[[email protetta] ~]# cat /proc/sys/fs/file-max146013

Il numero sopra indica che l'utente può aprire il file "146013" per sessione di accesso utente.

[[email protetta] ~]# cat /proc/sys/fs/file-max149219[[email protetta] ~]# cat /proc/sys/fs/file-max73906

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

comando ulimit :

Come suggerisce il nome, ulimit (limite utente) viene utilizzato per visualizzare e impostare il limite delle 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 ” su sistemi Ubuntu/Debian e CentOS,

Sistema Ubuntu/Debian ,

[email protected] ~}$ ulimit -acore file size          (blocchi, -c) 0data seg size           (kbytes, -d) priorità di pianificazione illimitata            (-e) 0dimensione file               (blocchi, -f) segnali in sospeso illimitati              5731Max Memoria bloccata (KBytes, -L) 64Max Dimensione della memoria (KBytes, -M) File UnlimitedOpen (-N) 1024 Dimensione del tubo (512 byte, -P) 8 code di messaggi (byte, -q) 819200real -time priorità (-r ) 0dimensione stack             (kbyte, -s) 8192 tempo cpu               (secondi, -t) numero massimo di processi utente illimitato              (-u) 5731 memoria virtuale          (kbyte, -v) blocchi file illimitati                  >          > 

Sistema CentOS

[email protected] ~}$ ulimit -acore file size          (blocchi, -c) 0data seg size           (kbytes, -d) priorità di pianificazione illimitata            (-e) 0dimensione file               (blocchi, -f) segnali in sospeso illimitati              5901max memoria bloccata       (kbytes, -l) 64max memoria size         (kbytes, -m) file aperti illimitati                      (-n) 1024dimensioni pipe            (512 byte, -p) 8POSIX code di messaggi      (byte, -q) 81 9200- priorità in tempo reale) 9200 0dimensione stack              (kbytes, -s) 8192cpu time               (secondi, -t) numero massimo illimitato di processi utente             (-u) 5901memoria virtuale          (kbytes, -v) illimitato blocchi file                                

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

Per visualizzare il limite di risorse individuali, quindi passare il parametro individuale nel comando ulimit, alcuni dei parametri sono elencati di seguito:

  • ulimit -n  –> Mostrerà il limite del numero di file aperti
  • ulimit -c –> Visualizza la dimensione del file principale
  • umilit -u –> Visualizza il limite massimo di processi utente per l'utente che ha effettuato l'accesso.
  • ulimit -f –> Mostrerà la dimensione massima del file che l'utente può avere.
  • umilit -m –> Visualizza la dimensione massima della memoria per l'utente che ha effettuato l'accesso.
  • ulimit -v –> Visualizzerà il limite massimo della dimensione della memoria

Usa i comandi seguenti per controllare i limiti hardware e software per il numero di file aperti per l'utente che ha effettuato l'accesso

[email protetta] ~}$ ulimit -Hn1048576[email protetta] ~}$ ulimit -Sn1024

Come risolvere il problema quando è stato raggiunto il limite del numero massimo di file?

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

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

[email protetta]~]# sysctl -w fs.file-max=100000fs.file-max =100000

Le modifiche di cui sopra 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,

[email protetta]~]# vi /etc/sysctl.confs.file-max =100000

salva ed esci dal file,

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

[email protetta]~]# sysctl -p

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

[email protetta]~]# cat /proc/sys/fs/file-max100000

Usa il comando seguente per scoprire quanti descrittori di file sono attualmente utilizzati:

[[email protetta] ~]# altro /proc/sys/fs/file-nr1216 0 100000

Nota:- Comando "sysctl -p ” viene utilizzato per confermare le modifiche senza riavviare e disconnettersi.

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

/etc/sysctl.conf ” viene utilizzato per impostare il limite delle risorse a livello di sistema, ma se si desidera impostare il limite delle risorse per utenti specifici come Oracle, MariaDB e Apache, è possibile ottenerlo tramite “/etc/security/limits.conf ” file.

L'esempio Limit.conf è mostrato di seguito,

[email protetta]~]# cat /proc/sys/fs/file-max

Supponiamo di voler impostare un limite hard e soft sul numero di file aperti per l'utente linuxtechi e per l'utente Oracle impostare un limite hard e soft sul numero di processi aperti, modificare il file "/etc/security/limits.conf" e aggiungere quanto segue righe

# limite rigido per il numero massimo di file aperti per linuxtechi userlinuxtechi hard nofile 4096# limite per il numero massimo di file aperti per linuxtechi userlinuxtechi soft nofile 1024# limite per il numero massimo di processi per oracle useroracle hard nproc 8096# limite per il numero massimo di processo per oracle useroracle soft nproc 4096

Salva ed esci dal file.

Nota: Nel caso in cui desideri limitare le risorse a un gruppo anziché agli utenti, è possibile anche tramite il file limit.conf, al posto del nome utente , digita @ e il resto degli articoli sarà lo stesso, l'esempio è mostrato di seguito,

# limite massimo per il numero massimo di file aperti per sysadmin group@sysadmin        hard         nofile            4096 # limite minimo per il numero massimo di file aperti per sysadmin group@sysadmin        soft         nofile            1024

Verifica 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:l'altro comando maggiormente utilizzato è "lsof ” che viene utilizzato per scoprire “quanti file sono aperti attualmente”. Questo comando è molto utile per gli amministratori.

Conclusione:

Come accennato nella sezione introduttiva, il comando "ulimit" è molto potente e aiuta a configurare e assicurarsi che le installazioni delle applicazioni siano più fluide senza alcun collo di bottiglia. Questo comando aiuta a correggere molte delle limitazioni dei file nei server basati su Linux.


Linux
  1. Come impostare l'indirizzo IP statico e configurare la rete in Linux

  2. Come reindirizzare l'output su un file e Stdout in Linux

  3. Cos'è NFS e come installarlo su Linux

  4. Come estrarre i file .gz e .tar.gz in Linux

  5. Come montare e smontare un file system in Linux

Come installare e configurare Tor Browser su Linux

File host Linux:come modificarlo e utilizzarlo?

Come modificare il limite di file aperti in Linux

Come creare e utilizzare file di scambio su Linux

Come impostare data e ora su Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux