Hvordan sette grenser for prosesser som kjører bruker i Linux
En av Linuxs skjønnheter er at du kan kontrollere nesten alt om den. Dette gir en systemadministrator god kontroll over systemet sitt og bedre utnyttelse av systemressursene.
Selv om noen kanskje aldri har tenkt på å gjøre dette, er det viktig å vite at i Linux kan du begrense hvor mye ressurs en enkelt bruker kan bruke og hvor lenge.
Les også: Hvordan øke antall åpne filer i Linux
I dette korte emnet vil vi vise deg hvordan du begrenser antall prosesser som startes av brukeren og hvordan du sjekker gjeldende grenser og endrer dem.
Før vi går videre er det to ting vi må påpeke:
- Du trenger root-tilgang til systemet ditt for å endre brukergrensene
- Du må være ekstremt forsiktig hvis du planlegger å endre disse grensene
For å sette opp brukergrenser, må vi redigere følgende fil:
/etc/security/limits.conf
Denne filen brukes til å bruke ulimit opprettet av pam_module.
Filen har følgende syntaks:
<domain> <type> <item> <value>
Her vil vi stoppe for å diskutere hvert av alternativene:
- Domene – dette inkluderer brukernavn, grupper, guideområder osv
- Type – myke og harde grenser
- Vare – elementet som vil være begrenset – kjernestørrelse, filstørrelse, nproc osv.
- Verdi – dette er verdien for den gitte grensen
Et godt eksempel på en grense er:
@student hard nproc 20
Linjen ovenfor setter en hard grense på maksimalt 20 prosesser for "student"
-gruppen.
Hvis du vil se grensene for en bestemt prosess kan du ganske enkelt “cat” grensefilen som dette:
cat /proc/PID/limits
Der PID er den faktiske prosess-ID-en, kan du finne ut prosess-ID ved å bruke kommandoen ps. For mer detaljert forklaring, les artikkelen vår som sier - Finn kjørende Linux-prosesser og angi prosessgrenser per brukernivå
Så her er et eksempel:
cat /proc/2497/limits
Eksempelutgang
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 32042 32042 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 32042 32042 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Alle linjene er ganske selvforklarende. Men hvis du ønsker å finne flere innstillinger du kan legge inn i filen limits.conf, kan du ta en titt på håndboken som følger med her.
Hvis du har spørsmål eller kommentarer, ikke nøl med å sende dem i kommentarfeltet nedenfor.