Sobes.tech
Middle

Ko jūs zināt par ulimits Linux sistēmās?

sobes.tech AI

Atbilde no AI

ulimits (lietotāja ierobežojumi) Linux — tas ir kodola mehānisms, kas ļauj noteikt ierobežojumus sistēmas resursu izmantojumam lietotājiem, grupām vai procesiem. Tie palīdz novērst resursu izsīkšanu vienā procesā, kas var novest pie sistēmas nestabilitātes vai atteices.

Galvenās ierobežojumu kategorijas:

  • Procesu skaits: Maksimālais bērnu procesu skaits, ko lietotājs vai process var izveidot.
  • Failu lielums: Maksimālais faila lielums, ko lietotājs vai process var izveidot.
  • Atvērtu failu skaits: Maksimālais failu deskriptoru skaits, ko process var atvērt.
  • Steka lielums: Maksimālais steka lielums procesiem.
  • Atmiņas izmantošana: Ierobežojumi virtuālajai atmiņai (resident set size, datu segmenta lielums un citi).
  • Plānošanas prioritāte: Maksimālā prioritāte, ar kuru process var darboties.
  • Failu bloķēšana: Failu bloķēšanas skaits.

ulimits pārvaldība tiek veikta ar:

  1. ulimit komandu (iebūvēta shell): ļauj apskatīt un iestatīt ierobežojumus pašreizējai shell un tās bērnu procesiem.

    # Visu pašreizējo ierobežojumu apskate (soft un hard)
    ulimit -a
    
    # Atvērtu failu skaita ierobežojuma apskate (soft)
    ulimit -n
    
    # Soft ierobežojuma iestatīšana uz 4096 atvērtu failu
    ulimit -n 4096
    
    # Hard ierobežojuma iestatīšana uz 8192 atvērtu failu (tikai root vai ja soft ierobežojums ir zemāks)
    ulimit -Hn 8192
    
  2. Fails /etc/security/limits.conf: ļauj uzstādīt pastāvīgus ierobežojumus konkrētiem lietotājiem, grupām vai visiem lietotājiem (*) sistēmas līmenī. Izmaiņas stājas spēkā pēc nākamās lietotāja pieteikšanās.

    # Sintakse: <domain> <type> <item> <value>
    
    # domain: lietotājs (@grupa, *)
    # type: soft | hard
    # item: core, nproc, nofile, virtualmem un citi
    # value: ierobežojuma vērtība
    
    # Ierobežojums lietotājam 'devops' par atvērtajiem failiem (soft=4096, hard=8192)
    devops soft nofile 4096
    devops hard nofile 8192
    
    # Ierobežojums grupai 'developers' par procesu skaitu (hard=1000)
    @developers hard nproc 1000
    
    # Ierobežojums visiem lietotājiem par faila lielumu (hard=unlimited)
    * hard fsize unlimited
    
  3. Sistēmas izsaukumi (piemēram, setrlimit, getrlimit): Programmas var programmatiski iestatīt vai iegūt savus ierobežojumus darbības laikā. Procesi bez privilēģijām var tikai samazināt savus stingros ierobežojumus vai mainīt mīkstos ierobežojumus līdz ne augstākai kā stingrā. Root var iestatīt jebkādus ierobežojumus.

Saprotot ulimits, ir kritiski, lai risinātu resursu problēmas (piemēram, "pārāk daudz atvērtu failu"), novērstu DoS uzbrukumus resursu līmenī un optimizētu lietojumprogrammu veiktspēju. Īpaši svarīgi, uzsākot pakalpojumus, konteinerus vai datu bāzes.