Sobes.tech
Middle

Mit tud az ulimits-ról Linux rendszerekben?

sobes.tech MI

Válasz az MI-től

ulimits (felhasználói korlátok) Linuxon — ez a kernel mechanizmusa, amely lehetővé teszi a rendszererőforrások felhasználók, csoportok vagy folyamatok szerinti korlátozását. Segítenek megelőzni, hogy egy folyamat kimerítse az erőforrásokat, ami rendszerstabilitási problémákhoz vagy rendszerleálláshoz vezethet.

Fő korlátozási kategóriák:

  • Folyamatok száma: A maximális gyermekfolyamatok száma, amelyet egy felhasználó vagy folyamat létrehozhat.
  • Fájlok mérete: A maximális fájlméret, amelyet egy felhasználó vagy folyamat létrehozhat.
  • Megnyitott fájlok száma: A maximális fájldeskriptorok száma, amelyet egy folyamat megnyithat.
  • Verem mérete: A maximális veremméret folyamatok számára.
  • Memóriahasználat: Korlátozások a virtuális memóriára (resident set size, adat szegmens mérete és mások).
  • Ütemezési prioritás: A maximális prioritás, amellyel egy folyamat működhet.
  • Fájl zárolások: A fájlok zárolásainak száma.

A ulimits kezelése a következő módon történik:

  1. ulimit parancs (beépített a shellbe): Lehetővé teszi a jelenlegi shell és annak gyermekfolyamatainak korlátainak megtekintését és beállítását.

    # Minden aktuális korlát megtekintése (soft és hard)
    ulimit -a
    
    # A megnyitott fájlok számának korlátjának megtekintése (soft)
    ulimit -n
    
    # Soft limit beállítása 4096-ra a megnyitott fájlokra
    ulimit -n 4096
    
    # Hard limit beállítása 8192-re a megnyitott fájlokra (csak root vagy ha soft limit alacsonyabb)
    ulimit -Hn 8192
    
  2. /etc/security/limits.conf fájl: Lehetővé teszi állandó korlátok beállítását konkrét felhasználók, csoportok vagy minden felhasználó számára (*) rendszer szinten. A változtatások a felhasználó következő bejelentkezése után lépnek életbe.

    # Szintaxis: <domain> <type> <item> <value>
    
    # domain: felhasználó (@csoport, *)
    # type: soft | hard
    # item: core, nproc, nofile, virtualmem és mások
    # value: korlát értéke
    
    # Korlát a 'devops' felhasználónak a megnyitott fájlok számára (soft=4096, hard=8192)
    devops soft nofile 4096
    devops hard nofile 8192
    
    # Korlát a 'developers' csoportnak a folyamatok számára (hard=1000)
    @developers hard nproc 1000
    
    # Fájlméret korlát minden felhasználónak (hard=unlimited)
    * hard fsize unlimited
    
  3. Rendszerhívások (pl. setrlimit, getrlimit): Programok programozottan állíthatják be vagy kérhetik le saját korlátaikat futás közben. A jogosulatlan folyamatok csak csökkenthetik a szigorú korlátokat vagy módosíthatják a lágyakat a szigorúak nem felett. A root bármilyen korlátot beállíthat.

A ulimits megértése kritikus a problémák hibakeresésében (pl. "túl sok nyitott fájl"), az erőforrás-alapú DoS támadások megelőzésében és az alkalmazások teljesítményének beállításában. Különösen fontos szolgáltatások, konténerek vagy adatbázisok indításakor.