GNU/Linux >> Linux Esercitazione >  >> Linux

Controllo dell'utilizzo delle risorse del sistema con il comando Ulimit

In questo tutorial per principianti imparerai a conoscere il comando ulimit in Linux. Scoprirai come usarlo per controllare l'allocazione delle risorse di sistema.

Cos'è ulimit in Linux?

Ulimit è un comando shell integrato progettato per visualizzare, allocare e limitare le risorse. È essenziale che qualsiasi sistema regoli questi tipi di controlli.

Questo tipo di controllo può essere applicato a livello globale, di gruppo e utente. Oltre a garantire un'elaborazione regolare delle attività, impedisce ai processi indesiderati di divorare risorse di sistema come RAM e potenza della CPU.

Ulimit è collegato a un file di configurazione della sicurezza. La tua posizione esatta può variare, ma in genere è qualcosa come /etc/security/limits.conf . Ulimit ci consente di modificare rapidamente tale configurazione.

Limiti soft vs hard limiti

Come utente, puoi effettivamente regolare le tue impostazioni ulimit.

Ti starai chiedendo perché anche impostare un limite se un utente può modificarlo. È qui che entrano in gioco i limiti soft e hard.

Quindi, dal punto di vista dell'amministratore, potresti preferire che il tuo utente si muova attorno a un certo valore. Questo sarebbe il tuo limite morbido (diciamo 25).

Quindi, potresti stabilire un limite rigido che non può essere superato da quell'utente (50). L'utente sarebbe autorizzato ad aumentare il proprio limite da 25 a 50.

Utilizzo di ulimit in Linux

Ecco la sintassi del comando ulimit:

ulimit <options>

Mostra tutti i limiti per qualsiasi utente

Puoi visualizzare tutti i tipi di limiti per un utente specificato in questo modo:

ulimit -a user_name

Il -a flag mostrerà tutte le opzioni e la loro configurazione per il tuo nome utente specifico.

Se ometti user_name, mostra i limiti per te. Lascia che ti mostri i limiti impostati per me di default:

[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31503
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31503
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

I tuoi valori predefiniti potrebbero essere diversi dai miei, ovviamente. Questa visualizzazione mostra una descrizione, il flag assegnato (che può essere utilizzato per modificare i limiti) e la configurazione.

Visualizza limiti hard e soft

È anche possibile visualizzare uno di questi rispettivi limiti con un flag.

Per visualizzare i limiti soft, usa l'opzione -S:

ulimit -S

Per visualizzare i limiti rigidi, utilizzare l'opzione -H:

ulimit -H

È più utile combinarli con flag specifici dall'alto. Quindi, se vuoi controllare il limite rigido sul numero massimo di processi utente, dovresti digitare:

[email protected]:~$ ulimit -Hu
31503

Cambia i limiti (temporaneamente)

Ora cambiamo quel valore in 31500 a scopo dimostrativo e controlliamo di nuovo il limite rigido.

[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500

Vale la pena notare che tutte le modifiche che i tuoi privilegi ti consentiranno verranno scritte solo temporaneamente e influenzeranno la tua shell attuale.

Per confermare ciò, sono uscito dalla mia shell e ho creato un nuovo terminale e ho ottenuto il valore predefinito originale.

[email protected]:~$ ulimit -Hu
31503

La sezione successiva mostra come rendere permanenti le modifiche.

Apportare modifiche permanenti a ulimit

Come ho detto all'inizio dell'articolo, ulimit è governato da /etc/security/limits.conf. Se desideri apportare modifiche permanenti agli ulimits di qualsiasi utente, dovrai apportare modifiche al file di sicurezza come root.

Durante la modifica devi includere questi quattro elementi:

<domain> <type> <item> <value>

Ecco il testo che ho aggiunto al file per impostare il limite rigido sul numero di processi per l'utente christoper (ovvero il mio account):

christopher    hard    nproc   2000

Tieni presente che è buona norma non abilitare l'account root a meno che tu non sia pienamente consapevole delle potenziali conseguenze. L'ho fatto su una macchina virtuale, quindi non devi farlo da solo.

[email protected]:~$ su
Password: 
[email protected]:/home/christopher# nano /etc/security/limits.conf 
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000

Come puoi vedere, il limite per "christopher" è stato cambiato a 20000.

Come fai a sapere quale parola chiave usare per modificare il file /etc/security/limits.conf? Bene, ecco una tabella che include le possibili parole chiave degli articoli e le loro descrizioni:

Parola chiave elemento Descrizione
core limita la dimensione del file principale (KB)
dati dimensione massima dei dati (KB)
fsize dimensione massima del file (KB)
blocco memoria spazio di indirizzi in memoria bloccato (KB)
nessun file numero massimo di descrittori di file aperti
rss dimensione massima del set residente (KB)
pila dimensione massima dello stack (KB)
cpu Tempo massimo CPU (MIN)
nproc numero massimo di processi
come limite spazio indirizzi (KB)
maxlogin numero massimo di accessi per questo utente
maxsyslogins numero massimo di accessi al sistema
priorità la priorità con cui eseguire il processo utente
serrature numero massimo di blocchi di file che l'utente può mantenere
in attesa numero massimo di segnali in sospeso
msgqueue – memoria massima utilizzata dalle code di messaggi POSIX (byte)
bello Priorità piacevole massima consentita per aumentare ai valori:[-20, 19]
rtprio Priorità massima in tempo reale
chroot cambia root in directory (specifica per Debian)
Tipo limite Descrizione
difficile limite rigido
morbido limite morbido
limite sia hard che soft

Cambia ulimit per i gruppi

La modifica di un criterio di gruppo è molto simile a quanto visto nella sezione precedente, ma includerai un @ simbolo prima del nome del gruppo.

Ecco un esempio in cui ho impostato il numero massimo di accessi per lo studente del gruppo è 4 modificando il file /etc/security/limits.conf:

@student    -   maxlogins   4

Conclusione

Spero che questo rapido manuale di istruzioni sul comando ulimit Linux ti sia piaciuto.

Se hai commenti o domande, lasciali qui sotto. Se hai suggerimenti per argomenti che vorresti vedere trattati, sentiti libero di lasciare anche quelli.


Linux
  1. Comandi accoppiati con operatori di controllo in Bash

  2. Come monitorare il sistema Linux con il comando Sguardi

  3. Comando di arresto di Linux (con esempi)

  4. Converti collegamento simbolico assoluto in collegamento simbolico relativo con un semplice comando Linux?

  5. Come controllare l'utilizzo delle risorse di sistema con ulimit in Linux

Comando Usermod con esempi

Come visualizzare l'utilizzo dello spazio su disco con Vizex

Modifica gli account utente con il comando Usermod

Elimina gli utenti in Linux con il comando Userdel

Utilizzo del comando Linux mv con esempi

Utilizzo del comando Linux sed con esempi