“ulimit” is een interessante Linux shell commando dat kan instellen of rapporteren van de resource limiet van de huidige gebruiker.

Natuurlijk, vanwege de aard ervan, het werken met “ulimit” vereist admin toegang (bij het wijzigen van de waarde). Bovendien werkt het alleen op systemen die controle via de commandoregel toestaan. Laten we beginnen met “ulimit”!

Start de terminal en voer het volgende commando uit.

which ulimit

Dit geeft een foutmelding, toch? Waarom? Dat komt omdat “ulimit” geen aparte binary is. Het is ingebed in de shell zelf.

Basic use

Draai het commando gewoon zelf.

ulimit

Zoals de uitvoer suggereert, heeft de huidige gebruiker “ongelimiteerde” hoeveelheid bronnen die kunnen worden benaderd. In wezen betekent dit dat de huidige gebruiker alle bronnen kan gebruiken die het huidige systeem ondersteunt.

Om het rapport in detail te bekijken, voegt u aan het eind de vlag “-a” toe. Hiermee worden alle resource-limieten voor de huidige gebruiker afgedrukt.

ulimit -a

Note: Er zijn 2 soorten resourcebeperkingen: “hard” en “zacht”. De “harde” resource limiet definieert de fysieke limiet die de gebruiker kan bereiken. De “zachte” limiet is beheersbaar door de gebruiker. De waarde ervan kan oplopen tot de “harde” limiet.

De systeembronnen worden gedefinieerd in een configuratiebestand dat staat in “/etc/security/limits.conf”. Wanneer “ulimit” wordt aangeroepen, worden deze waarden gerapporteerd.

cat /etc/security/limits.conf

Het controleren van verschillende limieten van een gebruiker

Hoe zit het met het weergeven van de individuele parameters? Roep dan “ulimit” op met de respectievelijke parameters.

Note: Niet al deze commando’s zullen werken omdat niet elk systeem de mogelijkheden bevat.

Om de waarde van de max “core file size” te controleren, gebruikt u de vlag “-c”. Het resultaat wordt getoond in blokken.

ulimit -c

Voor max “data seg size” (in kilobytes), gebruik de vlag “-d”.

ulimit -d

Bij het roosteren is prioriteit van belang. Controleer de maximale planningsprioriteit van de huidige gebruiker met behulp van de vlag “-e”.

ulimit -e

Om de maximale stackgrootte van de huidige gebruiker te controleren, gebruikt u de vlag “-s”.

ulimit -s

Voor het maximale aantal gebruikersprocessen gebruikt u de vlag “-u”.

ulimit -u

Voor het maximale aantal threads gebruikt u de vlag “-T”.

ulimit -T

Voor het verkrijgen van de grootte van het virtuele geheugen gebruikt u de volgende.

ulimit -v

Laten we eens kijken naar de socket buffergrootte!

ulimit -b

Dit is een interessante. Het volgende commando geeft aan hoe lang een proces mag draaien.

=ulimit -t

File descriptors zijn een ander interessant onderdeel van het Linux ecosysteem. Om te zien hoeveel bestandsdescriptors een proces mag hebben, voert u het volgende uit.

ulimit -n

Voor de volledige lijst van “ulimit”-vlaggen, raadpleeg de helppagina van “ulimit”.

ulimit –help

Waarden instellen

Tot nu toe hebben we gezien hoe we de waarden van de limieten van de bronnen van het huidige systeem kunnen controleren. Nu is het tijd om te zien hoe u deze waarden handmatig kunt wijzigen.

Note: Om de “harde” limiet te wijzigen, heeft u admin-toegang nodig, oftewel “root” toestemming. Zorg ervoor dat je de boel niet overhoop haalt!

We hadden het over het “limits.conf” bestand, toch? Het is de kern die alle limieten definieert die van toepassing zijn op de gebruikers.

sudo vim /etc/security/limits.conf

Zoals in het bestand te zien is, moet elke regel de volgende structuur volgen.

<domein> <type> <item> <waarde>

Het “domein”-gedeelte kan een van deze waarden zijn.

  • Een specifieke gebruiker
  • Een groep
  • Wildcard (* en %)

Het “type” gedeelte kan de volgende waarden hebben.

  • “soft” (voor het implementeren van zachte limieten)
  • “hard” (voor het implementeren van harde limieten)

Daarna komt het “item” gedeelte. De lijst van beschikbare opties is vrij lang! Hier zijn enkele van de interessante.

  • core: Core bestandsgrootte (in KB).
  • data: Max. gegevensgrootte (in KB)
  • fsize: Max bestandsgrootte (in KB).
  • memlock: Max locked-in-memory adresruimte (in KB).
  • nofile: Max aantal file descriptors
  • stack: Max grootte van de stack (in KB).
  • cpu: Maximale CPU-tijd (in MIN).
  • maxlogins: Maximum aantal logins voor de huidige gebruiker/groep
  • priority: Stel de prioriteit in van de processen van de gebruiker
  • rtprio: Maximale prioriteit in real-time.

In het veld “waarde” zet u een geheel getal. Merk op dat de eenheid van elk veld is gekoppeld aan de waarde van “item” part.

De wijzigingen zullen van kracht worden na het verlaten van en opnieuw inloggen op de bijbehorende gebruikersaccount.

Informatie over het configuratiebestand “limits.conf” vindt u op de man page.

man limits.conf

Eindgedachten

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.