”ulimit” är ett intressant Linux skalkommando som kan ställa in eller rapportera resursgränsen för den aktuella användaren.

För att kunna arbeta med ”ulimit” krävs naturligtvis administratörsbehörighet (för att ändra värdet). Dessutom fungerar det bara på system som tillåter kontroll via skalet. Utan vidare, låt oss komma igång med ”ulimit”!

Förstör terminalen och kör följande kommando.

vilket ulimit

Detta visar upp ett fel, eller hur? Varför? Det beror på att ”ulimit” inte är en separat binär fil. Den är inbäddad i själva skalet.

Basisk användning

Kör bara kommandot i sig självt.

ulimit

Som utmatningen antyder har den aktuella användaren ”obegränsad” mängd resurser att tillgå. Det betyder i huvudsak att den aktuella användaren kan använda alla resurser som det aktuella systemet stöder.

För att få rapporten i detalj lägger du till flaggan ”-a” i slutet. Detta kommer att skriva ut alla resursbegränsningar för den aktuella användaren.

ulimit -a

Anmärkning: Det finns två typer av resursbegränsningar: Det finns två typer av begränsningar: ”hårda” och ”mjuka”. Hård resursbegränsning definierar den fysiska gränsen som användaren kan nå. Den ”mjuka” resursgränsen kan hanteras av användaren. Dess värde kan gå upp till den ”hårda” gränsen.

Systemresurserna definieras i en konfigurationsfil som finns i ”/etc/security/limits.conf”. ”ulimit” rapporterar dessa värden när den anropas.

cat /etc/security/limits.conf

Kontroll av en användares olika gränser

Hur är det med att visa de enskilda parametrarna? Kalla sedan ”ulimit” med respektive parametrar.

Notera: Alla dessa kommandon fungerar inte eftersom alla system inte innehåller funktionerna.

För att kontrollera värdet på max ”core file size”, använd flaggan ”-c”. Resultatet visas i block.

ulimit -c

För max ”data seg size” (i kilobyte), använd flaggan ”-d”.

ulimit -d

I schemaläggning har prioritet betydelse. Kontrollera den maximala schemaläggningsprioriteten för den aktuella användaren med hjälp av flaggan ”-e”.

ulimit -e

För att kontrollera den maximala storleken på stacken för den aktuella användaren använder du flaggan ”-s”.

ulimit -s

För det maximala antalet användarprocesser använder du flaggan ”-u”.

ulimit -u

För maximalt antal trådar använder du flaggan ”-T”.

ulimit -T

För att få fram storleken på virtuellt minne använder du följande.

ulimit -v

Vi ska kolla storleken på socketbufferten!

ulimit -b

Den här är intressant. Följande kommando rapporterar den tid som varje process tillåts köra under.

=ulimit -t

Fildeskriptorer är en annan intressant del av Linux ekosystem. För att kontrollera hur många filbeskrivare en process kan ha kör du följande:

ulimit -n

För en fullständig lista över ”ulimit”-flaggor kan du läsa hjälpsidan för ”ulimit”.

ulimit –help

Inställda värden

Upp till nu har vi sett hur man kontrollerar värdena för resursgränserna i det aktuella systemet. Nu är det dags att se hur man manuellt ändrar dessa värden.

Notera: För att ändra den ”hårda” gränsen krävs administratörsbehörighet, det vill säga ”root”-behörighet. Se till att inte ställa till det!

Vi nämnde filen ”limits.conf”, eller hur? Det är kärnan som DEFINITIONERAR alla begränsningar som kommer att gälla för användarna.

sudo vim /etc/security/limits.conf

Som visas i filen måste varje post följa följande struktur.

<domän> <typ> <objekt> <värde>

Den del som avser ”domän” kan vara något av dessa värden.

  • En specifik användare
  • En grupp
  • Viltkort (* och %)

Den del som avser ”typ” tillåter följande värden.

  • ”soft” (för att implementera mjuka gränser)
  • ”hard” (för att implementera hårda gränser)

Nästan, delen ”item”. Listan över tillgängliga alternativ är ganska lång! Här är några av de intressanta.

  • core: Core file size (in KB).
  • data: Core file size (in KB).
  • data: Core file size (in KB): Max data size (in KB)
  • fsize: Max data size (in KB)
  • fsize: Max data size (in KB): Max file size (in KB).
  • memlock: Max file size (in KB).
  • memlock: Max file size (in KB): Max locked-in-memory address space (i KB).
  • nofile: Max locked-in-memory address space (i KB): Max antal filbeskrivare
  • stack: Max antal filbeskrivare
  • stack: Max antal filbeskrivare: Max storlek på stacken (i KB).
  • cpu: Max CPU-tid (i MIN).
  • maxlogins: Maximalt antal inloggningar för den aktuella användaren/gruppen
  • priority: Maximalt antal inloggningar för den aktuella användaren/gruppen
  • : Ange prioritet för användarens processer
  • rtprio: Ange prioritet för användarens processer
  • rtprio: Ange prioritet för användarens processer:

Som för fältet ”value”, ange ett heltalsvärde. Observera att enheten för varje fält är associerad med värdet för ”item”-delen.

Förändringarna träder i kraft efter att du har avslutat och loggat in på det associerade användarkontot igen.

För djupgående information om konfigurationsfilen ”limits.conf”, se dess man-sida.

man limits.conf

Sluttliga tankar

Lämna ett svar

Din e-postadress kommer inte publiceras.