Hoe de limiet voor het aantal open bestanden in Linux te verhogen

In Linux kunt u het maximale aantal open bestanden wijzigen. U kunt dit aantal wijzigen met de opdracht ulimit. Hiermee kunt u de beschikbare bronnen voor de commandoregel of het door de commandoregel gestarte proces controleren.

Lees ook: Set Linux Running Processes Limits on Per-Userl Level

In deze korte tutorial laten we u zien hoe u uw huidige limiet van open bestanden en bestandsbeschrijvingen kunt controleren, maar om dit te doen, moet u root-toegang tot uw systeem hebben.

Laten we eerst eens kijken hoe we het maximum aantal geopende file descriptors op uw Linux systeem kunnen achterhalen.

Vind Linux Open File Limit

De waarde is opgeslagen in:

# cat /proc/sys/fs/file-max818354

Het getal dat u te zien krijgt, toont het aantal bestanden dat een gebruiker per inlogsessie mag hebben geopend. Het resultaat kan verschillend zijn, afhankelijk van uw systeem.

Bijv. op een CentOS server van mij, was de limiet ingesteld op 818354, terwijl op de Ubuntu server die ik thuis draai de standaard limiet was ingesteld op 176772.

Als u de harde en zachte limieten wilt zien, kunt u de volgende commando’s gebruiken:

Check Hard Limit in Linux

# ulimit -Hn4096

Check Soft Limits in Linux

# ulimit -Sn1024

Om de harde en zachte waarden voor verschillende gebruikers te zien, kunt u gewoon van gebruiker veranderen met “su” naar de gebruiker waarvan u de limieten wilt controleren.

Voorbeeld:

# su marin$ ulimit -Sn1024
$ ulimit -Hn4096

Hoe controleer je systeembrede bestandsdescriptor-limieten in Linux

Als je een server draait, kan het zijn dat sommige van je applicaties hogere limieten voor geopende bestandsdescriptors nodig hebben. Een goed voorbeeld hiervan zijn MySQL/MariaDB services of Apache web server.

U kunt de limiet van geopende bestanden in Linux verhogen door de kernel richtlijn fs.file-max aan te passen. Voor dat doel kunt u gebruik maken van de sysctl utility.

Sysctl wordt gebruikt om kernel parameters te configureren tijdens runtime.

Om bijvoorbeeld de limiet voor geopende bestanden op 500000 te zetten, kunt u als root het volgende commando gebruiken:

# sysctl -w fs.file-max=500000

U kunt de huidige waarde voor geopende bestanden controleren met het volgende commando:

$ cat /proc/sys/fs/file-max

Met het bovenstaande commando blijven de wijzigingen die u hebt aangebracht slechts actief tot de volgende reboot. Als u ze permanent wilt toepassen, moet u het volgende bestand bewerken:

# vi /etc/sysctl.conf

Voeg de volgende regel toe:

fs.file-max=500000

Natuurlijk kunt u het nummer wijzigen naar uw wensen. Om de wijzigingen nogmaals te controleren gebruikt u:

# cat /proc/sys/fs/file-max

Gebruikers zullen moeten uitloggen en opnieuw inloggen om de wijzigingen van kracht te laten worden. Als u de limiet onmiddellijk wilt toepassen, kunt u het volgende commando gebruiken:

# sysctl -p

Set User Level Open File limits in Linux

De bovenstaande voorbeelden lieten zien hoe u globale limieten kunt instellen, maar misschien wilt u limieten per gebruiker instellen. Daarvoor moet u, als gebruiker root, het volgende bestand bewerken:

# vi /etc/security/limits.conf

Als u een Linux beheerder bent, stel ik voor dat u zeer vertrouwd raakt met dat bestand en wat u ermee kunt doen. Lees alle opmerkingen daarin, want het biedt grote flexibiliteit in termen van het beheer van systeembronnen door gebruikers/groepen op verschillende niveaus te beperken.

De regels die u moet toevoegen hebben de volgende parameters:

<domain> <type> <item> <value>

Hier volgt een voorbeeld van het instellen van een zachte en harde limiet voor gebruiker marin:

## Example hard limit for max opened filesmarin hard nofile 4096## Example soft limit for max opened filesmarin soft nofile 1024

Definitieve gedachten

Dit korte artikel heeft u een basis voorbeeld laten zien van hoe u globale en gebruikers niveau limieten kunt controleren en configureren voor het maximum aantal geopende bestanden.

Terwijl we slechts de oppervlakte hebben belicht, moedig ik u ten zeerste aan om /etc/sysctl.conf en /etc/security/limits.conf in meer detail te bekijken en te lezen en te leren hoe u ze kunt gebruiken. Ze zullen je op een dag goed van pas komen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.