Zoeken op website

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.