Hoe u het aantal geopende bestanden in Linux kunt verhogen
In Linux kunt u het maximale aantal geopende bestanden wijzigen. U kunt dit aantal wijzigen met behulp van het ulimit commando. Het geeft je de mogelijkheid om de beschikbare bronnen te controleren voor de shell of het proces dat ermee wordt gestart.
Lees ook: Stel limieten voor lopende Linux-processen in op niveau per gebruiker
In deze korte tutorial laten we u zien hoe u uw huidige limiet aan open bestanden en bestandsbeschrijvingen kunt controleren, maar om dit te doen heeft u root-toegang tot uw systeem nodig.
Laten we eerst eens kijken hoe we het maximale aantal geopende bestandsdescriptors op uw Linux-systeem kunnen achterhalen.
Zoek Linux Open Bestandslimiet
De waarde wordt opgeslagen in:
cat /proc/sys/fs/file-max
818354
Het getal dat u ziet, geeft het aantal bestanden aan dat een gebruiker per inlogsessie geopend mag hebben. Het resultaat kan verschillen, afhankelijk van uw systeem.
Op een CentOS-server van mij was de limiet bijvoorbeeld ingesteld op 818354, terwijl op de Ubuntu-server die ik thuis gebruik de standaardlimiet was ingesteld op 176772.
Als u de harde en zachte limieten wilt zien, kunt u de volgende opdrachten gebruiken:
Controleer de harde limiet in Linux
ulimit -Hn
4096
Controleer zachte limieten in Linux
ulimit -Sn
1024
Om de harde en zachte waarden voor verschillende gebruikers te zien, kunt u eenvoudigweg van gebruiker wisselen met “su” naar de gebruiker waarvan u de limieten wilt controleren.
Bijvoorbeeld:
su marin
ulimit -Sn
1024
ulimit -Hn
4096
Hoe u de systeembrede bestandsdescriptorslimieten in Linux kunt controleren
Als u een server gebruikt, vereisen sommige van uw toepassingen mogelijk hogere limieten voor geopende bestandsdescriptors. Een goed voorbeeld hiervan zijn de MySQL/MariaDB-services of de Apache-webserver.
Je kunt de limiet van geopende bestanden in Linux verhogen door de kernelrichtlijn fs.file-max
te bewerken. Voor dat doel kunt u het hulpprogramma sysctl gebruiken.
Sysctl wordt gebruikt om kernelparameters tijdens runtime te configureren.
Als u de limiet voor het openen van bestanden bijvoorbeeld wilt verhogen naar 500000, kunt u de volgende opdracht als root gebruiken:
sysctl -w fs.file-max=500000
U kunt de huidige waarde voor geopende bestanden controleren met de volgende opdracht:
cat /proc/sys/fs/file-max
Met het bovenstaande commando blijven de aangebrachte wijzigingen slechts actief tot de volgende herstart. 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
Uiteraard kunt u het aantal naar wens wijzigen. Om de wijzigingen opnieuw te verifiëren, gebruikt u:
cat /proc/sys/fs/file-max
Gebruikers moeten uitloggen en opnieuw inloggen om de wijzigingen door te voeren. Als u de limiet onmiddellijk wilt toepassen, kunt u het volgende commando gebruiken:
sysctl -p
Stel limieten voor het openen van bestanden op gebruikersniveau in Linux in
De bovenstaande voorbeelden laten zien hoe u globale limieten instelt, maar wellicht wilt u limieten per gebruiker toepassen. Voor dat doel moet u als gebruiker root het volgende bestand bewerken:
vi /etc/security/limits.conf
Als je een Linux-beheerder bent, raad ik je aan om goed bekend te raken met dat bestand en wat je ermee kunt doen. Lees alle opmerkingen erin, omdat het een grote flexibiliteit biedt bij het beheren 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 is een voorbeeld van het instellen van zachte en harde limieten voor gebruiker marin:
## Example hard limit for max opened files
marin hard nofile 4096
## Example soft limit for max opened files
marin soft nofile 1024
Laatste gedachten
In dit korte artikel ziet u een eenvoudig voorbeeld van hoe u algemene limieten en limieten op gebruikersniveau kunt controleren en configureren voor het maximale aantal geopende bestanden.
Hoewel we nog maar net de oppervlakte hebben betreden, moedig ik u ten zeerste aan om een meer gedetailleerd kijkje te nemen en te lezen over /etc/sysctl.conf en /etc/security/limits.conf en leer hoe u ze kunt gebruiken. Op een dag zullen ze je enorm helpen.