I Linux er ulimit et indbygget værktøj til at styre ressourceallokering på globalt niveau, gruppe- og brugerniveauer. For et flerbruger-system som Linux er en sådan funktion næsten altafgørende. Det kan forhindre forbrug af uønskede systemressourcer som RAM og CPU-strøm.
Tjek, hvordan du indstiller ulimit-værdien permanent på Linux.
Ulimit værdi
Ulimit håndhæver den foruddefinerede grænse for, hvor mange ressourcer en bruger kan bruge. Værktøjet bruger en bestemt konfigurationsfil som kernen til at tildele ulimit-værdier. For mere finjusteret kontrol er det bedre at redigere filen.
$ kat / etc / sikkerhed / grænser.konf
Der er to typer grænser, der kan pålægges: bløde og hårde grænser. Det er bedre at forklare disse typer med et simpelt eksempel.
Lad os sige, at en systemadministrator gerne vil have en bestemt bruger til at svæve omkring en bestemt værdi. Her kan brugeren overskride værdien, hvis det er nødvendigt, men ikke hårdt bundet af den. I dette tilfælde vil det være en blød grænse. På den anden side, hvis administratoren ønsker at indføre grænsen strengt, så vil det være en hård grænse.
Brug af ulimit
Ulimit er et kommandolinjeværktøj. Her er den grundlæggende struktur for kommandoen ulimit.
$ ulimitVis alle grænser
Flagget “-a” viser alle indstillinger og konfigurationer for en bestemt bruger. Hvis der ikke er defineret nogen bruger, udskriver grænserne for den aktuelle bruger i stedet.
$ ulimit -a$ ulimit -a
For at få vist en brugers bløde grænser skal du bruge “-S” -flagget.
For at få vist en brugers hårde grænser skal du bruge “-H” -flagget.
Det er muligt at se grænserne for en bestemt proces. Detaljerne findes i den følgende fil. Bemærk, at det er en unik fil til hver af de processer, der kører i øjeblikket. Skift PID-feltet med PID for målprocessen.
Begræns parametre
For at ændre ulimit skal du erklære, hvilken type grænse du vil definere. Her er en kortliste med alle de tilgængelige parametre, du kan ændre. Næsten alle definerer den maksimale værdi for hver af parametrene.
- b: Socket buffer størrelse
- c: Størrelsen på de oprettede kernefiler
- d: Processens datasegmentstørrelse
- e: Planlægningsprioritet ("pæn" værdi)
- f: Antal filer oprettet af skallen
- i: Antal ventende signaler
- l: Størrelse, der kan låses i hukommelsen
- m: Resident indstillet størrelse
- n: Antal åbne filbeskrivere
- p: Rørbufferstørrelse
- q: Antal bytes i POSIX-meddelelseskøer
- r: Prioritetsplanlægning i realtid
- s: Stakstørrelse
- t: CPU-tid (i sekunder)
- T: Antal tråde
- u: Antal processer, der er tilgængelige for en bruger
- v: Mængden af virtuel hukommelse, der er tilgængelig til behandling
- x: Antal fillåse
Skift ulimit-værdien midlertidigt
Det er muligt midlertidigt at ændre værdien af ulimit for en bestemt bruger. Ændringen forbliver effektiv, indtil brugeren er logget ud, sessionen udløber, eller systemet genstarter. Her viser jeg et eksempel på, hvordan man indstiller det maksimale procesnummer for en bruger.
For at ændre antallet af tilgængelige processer til 12345 skal du køre følgende kommando. Det pålægger brugeren en midlertidig hård grænse.
$ ulimit -u$ ulimit -u 12345
Tjek den hårde grænse for at kontrollere.
Skift ulimit-værdi permanent
Som tidligere nævnt bruger ulimit en systemkonfigurationsfil, der bestemmer standardværdien for ulimit. Ved at foretage ændringer i denne fil kan du permanent ændre ulimitværdien for enhver bruger.
Åbn filen i din yndlings teksteditor. Bemærk, at filen skal åbnes med rodtilladelse for at ændringerne skal gemmes.
$ sudo vim / etc / sikkerhed / grænser.konf
Her følger filens poster følgende struktur.
Lad os få en hurtig opdeling af hvert felt.
- domæne: Brugernavne, grupper, GUID-områder osv.
- type: Grænsetype (blød / hård)
- element: Den ressource, der vil være begrænset, for eksempel kernestørrelse, nproc, filstørrelse osv.
- værdi: Grænseværdien
Her er en kortliste over alle de tilgængelige ting.
- kerne: Begrænser kernefilstørrelse (i KB)
- CPU: CPU-tid (i min.)
- data: Datastørrelse (i KB)
- fsize: Filstørrelse (i KB)
- låse: Fillåse bruger kan holde
- memlock: Låst-i-hukommelse adresse plads (i KB)
- nproc: Antal processorer
- rtpio: Prioritet i realtid
- sigpending: Antal ventende signaler
For en komplet liste over tilgængelige emner, tjek man-siden med grænser.konf.
$ mand grænser.konf
For eksempel vil følgende post begrænse antallet af CPU-kerner, som brugeren "Viktor" kan bruge ned til 2.
Når den er redigeret, skal du gemme filen. For at få ændringerne i kraft skal den eller de berørte brugere logge ud og logge på igen. Afhængigt af hvordan det implementeres, kan det også kræve, at systemet genstarter.
Afsluttende tanker
Ulimit-værktøjet tilbyder en effektiv måde at administrere ressourcer på. Det er simpelt, men alligevel kraftfuldt, hvad det gør. Uanset hvad du gør, skal du sørge for, at den grænse, du er ved at implementere, er angivet korrekt. Hvis du prøver disse ting for første gang, skal du prøve at teste dem først på en virtuel maskine.
Ulimit-kommandoen har mere end det, jeg har diskuteret her. Hvis du vil lære mere, skal du tjekke Linux ulimit-kommandoen.
Glad computing!