ulimit

ulimit stelt limieten in op de resources die een proces of gebruiker mag gebruiken: aantal open bestanden, maximale geheugengrootte, CPU-tijd en meer. Dit voorkomt dat één proces het systeem volledig kan verzadigen.

Soft en hard limits

Elke limiet heeft twee niveaus:

TypeUitleg
Soft limitActieve limiet — een proces mag dit zelf verhogen tot de hard limit
Hard limitBovengrens — alleen root mag dit verhogen

Limieten bekijken

ulimit -a          # alle limieten van de huidige shell
ulimit -n          # maximaal aantal open bestanden
ulimit -u          # maximaal aantal processen

Limieten instellen

ulimit -n 65535    # open bestanden verhogen (voor deze sessie)

Permanent instellen doe je in /etc/security/limits.conf:

dexter  soft  nofile  65535
dexter  hard  nofile  65535

Veelvoorkomend probleem

Applicaties als databases en webservers (nginx, MySQL) openen veel gelijktijdige verbindingen. De standaard limiet voor open bestanden (nofile) is vaak te laag en moet verhoogd worden — anders loopt de applicatie vast met Too many open files.

Zie ook

  • ulimit — limieten instellen en uitlezen
  • proces — wat processen zijn
  • oom — wat er gebeurt als geheugenlimieten worden overschreden
  • pam — limits.conf wordt geladen via PAM
linuxsysteembeheerprocessen