GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando ulimit Linux

Introduzione

ulimit è un comando shell Linux integrato che consente di visualizzare o limitare le quantità di risorse di sistema che i singoli utenti consumano. Limitare l'utilizzo delle risorse è prezioso in ambienti con più utenti e problemi di prestazioni del sistema.

In questo tutorial imparerai a usare ulimit comando in Linux con esempi.

Prerequisiti

  • Un sistema che esegue Linux
  • Accesso a un terminale
  • Privilegi di sudo

Cos'è limit.conf?

Il limits.conf file è un file di configurazione che definisce le impostazioni di allocazione delle risorse di sistema ulimit usi. Il percorso completo del file di configurazione è /etc/security/limits.conf .

La modifica dei valori nel file persiste dopo il riavvio del sistema. Per modificare limits.conf sono necessarie le autorizzazioni di superutente file.

La prima sezione di limits.conf il file ha questo aspetto:

Ulimit, Soft Limit e Hard Limit in Linux spiegati

Le sezioni seguenti spiegano ulimit sintassi e la differenza tra due tipi di limitazione delle risorse:un limite morbido e limite rigido .

Sintassi ulimit

Il ulimit il comando accetta la seguente sintassi generale:

ulimit [flags][limit]

Ad esempio, per impostare la dimensione della memoria fisica in kilobyte, inserisci:

ulimit -m 15000

Bandiere

Usa il ulimit flag per visualizzare o limitare i singoli valori per varie risorse di sistema. Quando un [limit] è dato, è il nuovo valore della risorsa specificata.

I flag disponibili sono:

Bandiera Descrizione
-H Il limite rigido per la risorsa data. Solo gli utenti root possono aumentare il limite rigido e qualsiasi processo può abbassarlo.
-S Il limite morbido per la risorsa data. Qualsiasi processo può modificare il limite morbido.
-a Elenca tutti i limiti di risorse correnti.
-b La dimensione massima del buffer del socket.
-c La dimensione del core dump, espressa nel numero di blocchi da 512 byte.
-d La dimensione dell'area dati, in kilobyte.
-e La massima priorità di pianificazione del processo (bello).
-f Il limite delle dimensioni del file in blocchi quando si utilizza il [limit] parametro. Non si specifica un [limit] indica al comando di segnalare il limite di dimensione del file.
-i Il limite del numero di segnali in sospeso.
-k Il limite del numero di allocazione della coda.
-l La dimensione massima consentita per il blocco della memoria.
-m La dimensione della memoria fisica, in kilobyte.
-n Il numero massimo di descrittori di file che può avere un processo.
-p La dimensione del buffer della pipe.
-P Il numero massimo di pseudoterminali.
-q Il numero massimo di byte nelle code di messaggi POSIX.
-r Il numero massimo di thread che un processo può avere.
-R Il tempo massimo di esecuzione del processo, espresso in microsecondi.
-s La dimensione dello stack, in kilobyte.
-t Specifica il tempo di esecuzione massimo di un processo, in secondi.
-T Il limite del numero di thread.
-u Specifica quanti processi può creare un utente.
-v La memoria virtuale massima disponibile per i processi.
-x Il numero massimo di blocchi di file.

[limit] Parametro

Aggiunta di un [limit] passa il nuovo valore per le risorse specificate. Se omesso, il comando stampa il valore del limite software corrente per la risorsa specificata, a meno che non specifichi il -H bandiera.

Il limite si applica sia al limite soft che a quello hard se nessuno dei due è -H -S i flag sono specificati.

Valori di uscita

Il ulimit comando ha due valori di uscita:

  • 0 . Segna un completamento riuscito.
  • >0 . Una richiesta per un limite superiore è stata rifiutata o si è verificato un errore.

Limite soft

I limiti delle risorse software sono valori applicati dal kernel per la risorsa corrispondente. Il limite soft è gestibile da qualsiasi utente e il suo valore massimo non può superare il limite hard. Il limite rigido funge da tetto per il limite morbido.

Per visualizzare i limiti software dettagliati per l'utente corrente, eseguire:

ulimit -Sa

Limite limite

Il limite di risorse fisiche definisce il limite di risorse fisiche per un utente. Allo stesso tempo, l'hard limit è il valore massimo per il soft limit. Solo gli utenti root possono modificare il limite rigido .

Per visualizzare i limiti rigidi dettagliati per l'utente corrente, eseguire:

ulimit -Ha

Come usare ulimit

Esegui ulimit comando inserendo il nome del comando nel terminale:

ulimit

L'output mostra la quantità di risorse a cui l'utente corrente ha accesso. In questo esempio, l'utente dispone di risorse di sistema illimitate. Per visualizzare o impostare limiti di risorse individuali, utilizza il ulimit disponibile bandiere.

Le sezioni seguenti elencano gli usi più comuni di ulimit comando.

Rapporto dettagliato sui limiti

Ottieni un rapporto dettagliato con tutti i limiti di risorse per l'utente corrente specificando il -a bandiera:

ulimit -a

L'output contiene un rapporto dettagliato sui limiti delle risorse per l'utente corrente.

Numero processo limite

Limita il numero massimo di processi di un utente specificando il -u flag e il numero di processi.

Ad esempio, limiteremo il numero del processo a 10:

ulimit -u 10

La limitazione del numero massimo di processi per utente impedisce loro di utilizzare tutte le risorse del sistema. La limitazione del numero di processi previene anche gli effetti negativi di potenziali attacchi come fork bomb.

Ad esempio:

Nell'esempio sopra, abbiamo prima limitato il numero del processo a 10, quindi abbiamo eseguito una fork bomb. La bomba fork altrimenti consumerebbe tutte le risorse e renderebbe il sistema non rispondente.

Limita la dimensione del file

Il -f flag imposta la dimensione massima del file che un utente può creare. Ad esempio, il comando seguente limita la dimensione del file a 50 KB:

ulimit -f 50

Verifica se il limite funziona creando un file più grande. Ad esempio, abbiamo usato il comando cat per reindirizzare /dev/zero output in un file, che sarebbe molto più grande di 50 KB:

L'output indica che il limite di dimensione del file è stato superato. Verifica la dimensione del file eseguendo:

ls -lh file

L'output del comando ls mostra che la dimensione del file è esattamente 50 KB, che è il limite che abbiamo impostato in precedenza.

Limite di memoria virtuale massima

Usa il -v flag per impostare la quantità massima di memoria virtuale disponibile per un processo. La limitazione della memoria virtuale di un processo impedisce che esaurisca tutta la memoria e previene il thrashing.

Ad esempio, il comando seguente limita la memoria virtuale disponibile per un processo a 1000 KB:

ulimit -v 1000

Limita il numero di file aperti

Il -n flag limita il numero di file aperti contemporaneamente (descrittori di file). L'esempio seguente imposta il numero di file aperti su cinque:

ulimit -n 5

Per verificarlo, proveremo ad aprire più file di testo, che genera un errore:

Modifica il file limit.conf per modificare il limite soft o hard

Per modificare il limite soft o hard, modifica i valori in limits.conf file.

Segui i passaggi seguenti:

1. Apri una finestra del terminale e cambia la directory in /etc/security :

cd /etc/security

2. Apri limits.conf file utilizzando un editor di testo, come l'editor vim.

vim limits.conf

3. Modificare i valori limite modificando le voci esistenti o aggiungendone una nuova. Ogni voce di limitazione ha quattro parti:

  • <domain> . Definisce un utente, un gruppo o contiene un carattere jolly (* o % ).
  • <type> . Accetta due valori:soft o hard .
  • <item> . Accetta tutti i valori elencati nel file di configurazione.
  • <value> . Un valore intero espresso in un'unità associata a <item> .

Ad esempio:

Assicurati di decommentare la riga quando modifichi il file di configurazione.


Linux
  1. Come usare il comando sed di Linux

  2. Come usare il comando Linux grep

  3. Come usare il comando cronologia in Linux

  4. Come usare il comando Su in Linux

  5. Come utilizzare il comando "schermo" in Linux

Come utilizzare il comando fd sul sistema Linux

Come utilizzare il comando ulimit in Linux

Come utilizzare il comando wget in Linux?

Come usare il comando xargs in Linux?

Come utilizzare il comando RPM in Linux

Come utilizzare il comando which in Linux