Come impostare il valore ulimit permanente

Come impostare il valore ulimit permanente

In Linux, Ulimit è uno strumento integrato per gestire l'allocazione delle risorse a livello globale, di gruppo e utente. Per un sistema multiutente come Linux, una caratteristica del genere è quasi fondamentale da avere. Può impedire il consumo di risorse di sistema indesiderate come la RAM e la potenza della CPU.

Scopri come impostare il valore Ulimit permanentemente su Linux.

Valore ulimit

Ulimit applica il limite predefinito di quante risorse può utilizzare un utente. Lo strumento utilizza un determinato file di configurazione come core per assegnare i valori Ulimit. Per un controllo più messo a punto, è meglio modificare il file.

$ cat/etc/sicurezza/limiti.conf


Esistono due tipi di limiti che possono essere imposti: limiti morbidi e difficili. È meglio spiegare questi tipi con un semplice esempio.

Diciamo che un amministratore di sistema vorrebbe che un certo utente si aggirasse atto. Qui, l'utente può superare il valore se necessario ma non duro da esso. In questo caso, sarà un limite morbido. D'altra parte, se l'amministratore vuole imporre rigorosamente il limite, allora sarà un limite duro.

Usando l'ulimit

Ulimit è uno strumento di comando. Ecco la struttura di base del comando Ulimit.

$ Ulimit

Visualizza tutti i limiti

Il flag "-a" elencherà tutte le opzioni e le configurazioni per un determinato utente. Se non viene definito nessun utente, stamperà invece i limiti per l'utente corrente.

$ Ulimit -A
$ Ulimit -A


Per visualizzare i limiti soft di un utente, utilizzare il flag "-s".

$ Ulimit -sa


Per visualizzare i limiti difficili di un utente, utilizzare il flag "-h".

$ Ulimit -ha


È possibile vedere i limiti di un determinato processo. I dettagli si trovano nel seguente file. Si noti che è un file univoco per ciascuno dei processi che sono attualmente in esecuzione. Scambia il campo PID con il PID del processo target.

$ cat /proc //limiti

Limitare i parametri

Per cambiare l'ulimit, devi dichiarare quale tipo di limite desideri definire. Ecco una lista con tutti i parametri disponibili che puoi cambiare. Quasi tutti definiscono il valore massimo di ciascuno dei parametri.

  • B: dimensione del buffer socket
  • C: dimensione dei file core creati
  • D: Dimensione del segmento di dati del processo
  • E: priorità di pianificazione (valore "piacevole")
  • F: numero di file creati dalla shell
  • I: Numero di segnali in sospeso
  • L: dimensione per bloccare in memoria
  • M: dimensione del set di residenti
  • N: numero di descrittori di file aperti
  • P: dimensione del tampone del tubo
  • D: Numero di byte nelle code dei messaggi POSIX
  • R: priorità di pianificazione in tempo reale
  • S: dimensione dello stack
  • T: tempo della CPU (in secondi)
  • T: numero di thread
  • U: numero di processi disponibili per un utente
  • V: quantità di memoria virtuale disponibile per il processo
  • X: numero di blocchi di file

Cambia temporaneamente il valore dell'ulimit

È possibile modificare temporaneamente il valore di Ulimit per un determinato utente. La modifica rimarrà efficace fino a quando l'utente non sarà disconnesso, la sessione scade o il sistema si riavvia. Qui, mostrerò un esempio di come impostare il numero di processo massimo per un utente.

Per modificare il numero di processi disponibili in 12345, eseguire il comando seguente. Imporrà un limite duro temporaneo all'utente.

$ Ulimit -u
$ Ulimit -u 12345


Dai un'occhiata al limite duro da verificare.

$ Ulimit -hu

Cambia il valore di ulimit in modo permanente

Come accennato in precedenza, Ulimit utilizza un file di configurazione del sistema che determina il valore di Ulimit predefinito. Apportando modifiche a questo file, è possibile modificare permanentemente il valore Ulimit per qualsiasi utente.

Apri il file nel tuo editor di testo preferito. Si noti che il file deve essere aperto con l'autorizzazione alla root per le modifiche da salvare.

$ sudo vim/etc/sicurezza/limiti.conf


Qui, le voci del file seguono la seguente struttura.

$

Facciamo una rapida rottura di ciascuno dei campi.

  • Dominio: nomi utente, gruppi, gamme di guida, ecc.
  • Tipo: tipo di limite (morbido/duro)
  • Articolo: la risorsa che sarà limitata, ad esempio, dimensioni core, NPROC, dimensioni del file, ecc.
  • Valore: il valore limite

Ecco una lista di tutti gli articoli disponibili.

  • Core: limita la dimensione del file core (in KB)
  • CPU: tempo della CPU (in min)
  • Dati: dimensione dei dati (in KB)
  • Fsize: dimensione del file (in KB)
  • Locks: l'utente dei blocchi file può trattenere
  • Memlock: spazio di indirizzo bloccato in memoria (in KB)
  • NPROC: numero di processori
  • RTPIO: priorità in tempo reale
  • SIGPENDE: Numero di segnali in sospeso

Per un elenco completo degli elementi disponibili, controlla la pagina dei limiti man.conf.

$ man limiti.conf


Ad esempio, la seguente voce limiterebbe il numero di core della CPU che l'utente "Viktor" può utilizzare fino a 2.

$ viktor hard nproc 2

Una volta modificato, salva il file. Per ottenere le modifiche in vigore, gli utenti interessati devono disconnettersi e re-login. A seconda di come è implementato, potrebbe anche richiedere al sistema di riavviare.

Pensieri finali

Lo strumento Ulimit offre un modo potente di gestire le risorse. È semplice ma potente in quello che fa. Qualunque cosa tu faccia, assicurati che il limite che stai per implementare sia inserito correttamente. Se stai provando queste cose per la prima volta, prova prima a provarle in una macchina virtuale.

C'è di più nel comando Ulimit di quello che ho discusso qui. Se vuoi saperne di più, dai un'occhiata al comando Linux Ulimit.

Felice calcolo!