“ulimit” è un interessante comando della shell di Linux che può impostare o segnalare il limite di risorse dell’utente corrente.

Ovviamente, a causa della sua natura, lavorare con “ulimit” richiede l’accesso dell’amministratore (quando si cambia valore). Inoltre, funzionerà solo su sistemi che permettono il controllo attraverso la shell. Senza ulteriori indugi, cominciamo con “ulimit”!

Accendi il terminale ed esegui il seguente comando.

che ulimit

Questo mostra un errore, giusto? Perché? Perché “ulimit” non è un binario separato. È incorporato nella shell stessa.

Uso base

Esegui semplicemente il comando da solo.

ulimit

Come suggerisce l’output, l’utente corrente ha una quantità “illimitata” di risorse cui accedere. Essenzialmente, questo significa che l’utente corrente può consumare tutte le risorse che il sistema corrente supporta.

Per ottenere il rapporto in dettaglio, aggiungere il flag “-a” alla fine. Questo stamperà tutti i limiti delle risorse per l’utente corrente.

ulimit -a

Nota: Ci sono 2 tipi di limitazione delle risorse: “hard” e “soft”. Il limite di risorse “hard” definisce il limite fisico che l’utente può raggiungere. Il limite di risorse “soft” è gestibile dall’utente. Il suo valore può andare fino al limite “hard”.

Le risorse di sistema sono definite in un file di configurazione situato in “/etc/security/limits.conf”. “ulimit”, quando chiamato, riporterà questi valori.

cat /etc/security/limits.conf

Verificare i diversi limiti di un utente

Come visualizzare i singoli parametri? Allora chiama “ulimit” con i rispettivi parametri.

Nota: Non tutti questi comandi funzioneranno perché non tutti i sistemi incorporano le caratteristiche.

Per controllare il valore di max “core file size”, usa il flag “-c”. Il risultato sarà mostrato in blocchi.

ulimit -c

Per la max “data seg size” (in kilobyte), usa il flag “-d”.

ulimit -d

Nella programmazione, la priorità conta. Controlla la priorità massima di schedulazione dell’utente corrente con l’aiuto del flag “-e”.

ulimit -e

Per controllare la dimensione massima dello stack dell’utente corrente, usa il flag “-s”.

ulimit -s

Per il numero massimo di processi utente, usa il flag “-u”.

ulimit -u

Per il numero massimo di thread, usare il flag “-T”.

ulimit -T

Per ottenere la dimensione della memoria virtuale, usare la seguente.

ulimit -v

Controlliamo la dimensione del buffer del socket!

ulimit -b

Questa è una cosa interessante. Il seguente comando riporterà il tempo di esecuzione di ogni processo.

=ulimit -t

I descrittori di file sono un’altra parte interessante dell’ecosistema Linux. Per controllare quanti descrittori di file può avere un processo, eseguire il seguente.

ulimit -n

Per la lista completa dei flag di “ulimit”, controllare la pagina di aiuto di “ulimit”.

ulimit –help

Impostazione dei valori

Finora abbiamo visto come controllare i valori dei limiti delle risorse del sistema corrente. Ora, è il momento di vedere come modificare manualmente questi valori.

Nota: Per cambiare il limite “hard”, sarà necessario l’accesso di amministratore, cioè il permesso di “root”. Assicuratevi di non rovinare tutto!

Abbiamo menzionato il file “limits.conf”, giusto? E’ il nucleo che DEFINISCE tutti i limiti che saranno applicabili agli utenti.

sudo vim /etc/security/limits.conf

Come mostrato nel file, ogni voce deve seguire la seguente struttura.

<dominio> <tipo> <articolo> <valore>

La parte “dominio” può essere uno di questi valori.

  • Un utente specifico
  • Un gruppo
  • Bandiera (* e %)

La parte “type” permette i seguenti valori.

  • “soft” (per implementare limiti soft)
  • “hard” (per implementare limiti hard)

In seguito, la parte “item”. La lista delle opzioni disponibili è piuttosto lunga! Ecco alcune di quelle interessanti.

  • core: Dimensione del file principale (in KB).
  • data: Dimensione massima dei dati (in KB)
  • fsize: Dimensione massima del file (in KB).
  • memlock: Max spazio di indirizzo bloccato in memoria (in KB).
  • nofile: Numero massimo di descrittori di file
  • stack: Dimensione massima dello stack (in KB).
  • cpu: Tempo massimo della CPU (in MIN).
  • maxlogins: Numero massimo di login per l’utente/gruppo corrente
  • priorità: Imposta la priorità dei processi dell’utente
  • rtprio: Massima priorità in tempo reale.

Per quanto riguarda il campo “valore”, mettete un valore intero. Nota che l’unità di ogni campo è associata al valore della parte “item”.

Le modifiche avranno effetto dopo essere usciti e aver effettuato nuovamente l’accesso all’account utente associato.

Per informazioni approfondite sul file di configurazione “limits.conf”, controlla la sua pagina man.

man limits.conf

Pensieri finali

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.