Az “ulimit” egy érdekes Linux shell parancs, amely képes beállítani vagy jelenteni az aktuális felhasználó erőforráslimitjét.

Az “ulimit”-el való munka természetéből admintól függ (az érték megváltoztatásához). Ráadásul csak olyan rendszereken fog működni, amelyek lehetővé teszik a shell-en keresztüli vezérlést. Minden további nélkül kezdjünk neki az “ulimit”-nek!

Tüzeljük fel a terminált, és futtassuk a következő parancsot.

which ulimit

Ez hibát mutat, igaz? Miért? Azért, mert az “ulimit” nem egy különálló bináris. Magába a shellbe van beágyazva.

Egyszerű használat

Egyszerűen futtasd a parancsot önmagában.

ulimit

Amint a kimenet mutatja, az aktuális felhasználó “korlátlan” mennyiségű erőforráshoz férhet hozzá. Ez lényegében azt jelenti, hogy az aktuális felhasználó az aktuális rendszer által támogatott összes erőforrást elfogyaszthatja.

A jelentés részletesebb megjelenítéséhez adja hozzá a “-a” jelzőt a végére. Ez kiírja az aktuális felhasználó összes erőforráskorlátozását.

ulimit -a

Megjegyzés: Az erőforráskorlátozásnak 2 típusa van: “Kemény” és “lágy”. A kemény erőforráskorlátozás azt a fizikai határt határozza meg, amelyet a felhasználó elérhet. A “puha” erőforráskorlát a felhasználó által kezelhető. Értéke elérheti a “kemény” korlátot.

A rendszer erőforrásainak meghatározása a “/etc/security/limits.conf” címen található konfigurációs fájlban történik. Az “ulimit” meghívásakor ezeket az értékeket jelzi.

cat /etc/security/limits.conf

Egy felhasználó különböző limitjeinek ellenőrzése

Hogyan lehetne megjeleníteni az egyes paramétereket? Akkor hívja meg az “ulimit”-et a megfelelő paraméterekkel.

Megjegyzés: Nem mindegyik parancs fog működni, mivel nem minden rendszer tartalmazza a funkciókat.

A “core file size” maximális értékének ellenőrzéséhez használja a “-c” jelzőt. Az eredmény blokkokban lesz feltüntetve.

ulimit -c

A maximális “data seg size” (kilobájtban) értékéhez használja a “-d” jelzőt.

ulimit -d

Az ütemezésben a prioritás számít. Ellenőrizze az aktuális felhasználó maximális ütemezési prioritását a “-e” flag segítségével.

ulimit -e

Az aktuális felhasználó maximális veremméretének ellenőrzéséhez használja a “-s” flaget.

ulimit -s

A felhasználói folyamatok maximális számának ellenőrzésére használja a “-u” flaget.

ulimit -u

A szálak maximális számának meghatározásához használja a “-T” flaget.

ulimit -T

A virtuális memória méretének megismeréséhez használja a következőt.

ulimit -v

Nézzük meg a socket puffer méretét!

ulimit -b

Ez egy érdekes megoldás. A következő parancs megadja, hogy az egyes folyamatok mennyi ideig futhatnak.

=ulimit -t

A fájlleírók a Linux ökoszisztéma másik érdekes része. Ha meg akarod nézni, hogy egy folyamatnak hány fájlleírója lehet, futtasd a következőt:

ulimit -n

Az “ulimit” flagek teljes listáját az “ulimit” súgóoldalán találod.

ulimit –help

Az értékek beállítása

Edig azt láttuk, hogyan ellenőrizhetjük az aktuális rendszer erőforráskorlátjainak értékeit. Most itt az ideje megnézni, hogyan lehet manuálisan módosítani ezeket az értékeket.

Megjegyzés: A “kemény” korlát megváltoztatásához adminisztrátori, azaz “root” jogosultságra lesz szükség. Ügyeljünk arra, hogy ne rontsuk el a dolgokat!

Emlékeztünk a “limits.conf” fájlra, ugye? Ez az a mag, amely MEGHATÁROZZA a felhasználókra vonatkozó összes korlátozást.

sudo vim /etc/security/limits.conf

A fájlban látható módon minden egyes bejegyzésnek a következő struktúrát kell követnie.

<domain> <type> <item> <érték>

A “domain” rész bármelyik érték lehet.

  • Egy adott felhasználó
  • Egy csoport
  • Wildcard (* és %)

A “type” rész a következő értékeket engedi meg.

  • “soft” (puha korlátok megvalósításához)
  • “hard” (kemény korlátok megvalósításához)

A következő a “item” rész. A rendelkezésre álló lehetőségek listája elég hosszú! Íme néhány érdekes közülük.

  • mag:
  • data:
  • fsize:
  • memlock:
  • nofile: Max locked-in-memory address space (KB-ban).
  • nofile: Max locked-in-memory address space (KB-ban):
  • stack: A verem maximális mérete (KB-ban).
  • cpu: Maximális CPU-idő (MIN-ben).
  • maxlogins:
  • priority: Maximális bejelentkezések száma az aktuális felhasználó/csoport számára: A felhasználó folyamatainak prioritásának beállítása
  • rtprio: Maximális prioritás valós időben.

Az “érték” mezőbe egész értéket kell beírni. Vegye figyelembe, hogy az egyes mezők egysége az “item” rész értékéhez kapcsolódik.

A módosítások a kapcsolódó felhasználói fiókból való kilépés és újbóli bejelentkezés után lépnek hatályba.

A “limits.conf” konfigurációs fájlra vonatkozó részletes információkért nézze meg a man oldalát.

man limits.conf

Végső gondolatok

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.