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.