Mida teate ulimits-i kohta Linux-süsteemides?
sobes.tech AI
Vastus AI-lt
ulimits (kasutaja piirangud) Linuxis — see on kernemehhanism, mis võimaldab määrata piiranguid süsteemi ressursside kasutamisele kasutajate, gruppide või protsesside jaoks. Need aitavad vältida ühe protsessi ressursside ammendumist, mis võib põhjustada süsteemi ebastabiilsust või tõrkeid.
Peamised piirangute kategooriad:
- Protsesside arv: Maksimaalne järeltööprotsesside arv, mille kasutaja või protsess võib luua.
- Failide suurus: Maksimaalne failisuurus, mille kasutaja või protsess võib luua.
- Avatud failide arv: Maksimaalne failide deskriptorite arv, mille protsess võib avada.
- Ketta suurus: Maksimaalne keti suurus protsessidele.
- Mälu kasutus: Piirangud virtuaalmälule (resident set size, andmesegmendi suurus ja teised).
- Planeerimise prioriteet: Maksimaalne prioriteet, millega protsess võib töötada.
- Faili lukud: Failide lukustuste arv.
ulimits haldamine toimub järgmiselt:
-
ulimitkäsk (shelli sisseehitatud): võimaldab vaadata ja seada piiranguid kehtivale shellile ja selle järeltööprotsessidele.# Kõigi kehtivate piirangute vaatamine (soft ja hard) ulimit -a # Avatud failide arvu piirangu vaatamine (soft) ulimit -n # Soft piirangu seadmine 4096 avatud faili jaoks ulimit -n 4096 # Hard piirangu seadmine 8192 avatud faili jaoks (ainult root või kui soft piirang on madalam) ulimit -Hn 8192 -
Fail
/etc/security/limits.conf: võimaldab määrata püsivaid piiranguid konkreetsetele kasutajatele, gruppidele või kõigile kasutajatele (*) süsteemitasandil. Muudatused jõustuvad pärast kasutaja järgmist sisselogimist.# Süntaks: <domain> <type> <item> <value> # domain: kasutaja (@grupp, *) # type: soft | hard # item: core, nproc, nofile, virtualmem ja teised # value: piirangu väärtus # Piirang kasutajale 'devops' avatud failide arvu osas (soft=4096, hard=8192) devops soft nofile 4096 devops hard nofile 8192 # Piirang gruppile 'developers' protsesside arvu osas (hard=1000) @developers hard nproc 1000 # Piirang kõigile kasutajatele faili suuruse osas (hard=unlimited) * hard fsize unlimited -
Süsteemikutsed (näiteks
setrlimit,getrlimit): Programmid saavad oma piiranguid programmeerides määrata või neid jooksvalt küsida. Privilegeideta protsessid saavad ainult vähendada oma kõvasid piiranguid või muuta pehmeid piiranguid kuni kõva piirangu väärtuseni. Root saab määrata kõiki piiranguid.
ulimits mõistmine on kriitiline ressursside probleemide tõrkeotsingus (näiteks "liiga palju avatud faile"), ressurssidele põhinevate DoS-rünnakute ennetamisel ja rakenduste jõudluse seadistamisel. Eriti oluline teenuste, konteinerite või andmebaaside käivitamisel.