Wéi d'Zuel vun den Open Files Limit op Linux erhéijen


Am Linux kënnt Dir de maximalen Betrag vun oppene Dateien änneren. Dir kënnt dës Nummer änneren andeems Dir den ulimit Kommando benotzt. Et gëtt Iech d'Fäegkeet fir d'Ressourcen ze kontrolléieren déi verfügbar sinn fir d'Schuel oder de Prozess deen dovunner gestart gouf.

An dësem kuerzen Tutorial wäerte mir Iech weisen wéi Dir Är aktuell Limit vun oppene Dateien a Dateibeschreiwunge kontrolléiert, awer fir dat ze maachen, musst Dir root Zougang zu Ärem System hunn.

Als éischt, Loosst eis kucken wéi mir d'maximal Unzuel vun opgemaachte Dateideskriptoren op Ärem Linux System erausfannen.

Fannt Linux Open File Limit

De Wäert gëtt an:

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

818354

D'Zuel déi Dir gesitt, weist d'Zuel vun de Dateien déi e Benotzer pro Login-Sessioun opgemaach huet. D'Resultat kann ënnerschiddlech sinn ofhängeg vun Ärem System.

Zum Beispill op engem CentOS Server vu mir ass d'Limit op 818354 gesat, während op Ubuntu Server, deen ech doheem lafen, d'Standardlimit op 176772 gesat gouf.

Wann Dir déi haart a mëll Grenzen wëllt gesinn, kënnt Dir déi folgend Kommandoen benotzen:

# ulimit -Hn

4096
# ulimit -Sn

1024

Fir déi haart a mëll Wäerter fir verschidde Benotzer ze gesinn, kënnt Dir einfach Benotzer mat su op de Benotzer wiesselen, déi Limiten Dir wëllt iwwerpréiwen.

Zum Beispill:

# su marin
$ ulimit -Sn

1024
$ ulimit -Hn

4096

Wéi kontrolléiert System breet Datei Descriptor Limiten am Linux

Wann Dir e Server leeft, kënnen e puer vun Ären Uwendungen méi héich Limite fir opgemaach Dateideskriptoren erfuerderen. E gutt Beispill fir sou sinn MySQL/MariaDB Servicer oder Apache Webserver.

Dir kënnt d'Limite vun opgemaachte Dateien am Linux erhéijen andeems Dir d'Kernel Direktiv fs.file-max ännert. Fir dësen Zweck kënnt Dir de sysctl Utility benotzen.

Sysctl gëtt benotzt fir Kernelparameter beim Runtime ze konfiguréieren.

Zum Beispill, fir oppe Dateilimit op 500000 ze erhéijen, kënnt Dir de folgende Kommando als Root benotzen:

# sysctl -w fs.file-max=500000

Dir kënnt den aktuelle Wäert fir opgemaach Dateien mat dem folgenden Kommando iwwerpréiwen:

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

Mat dem uewe genannte Kommando bleiwen d'Ännerungen déi Dir gemaach hutt nëmmen aktiv bis den nächsten Neistart. Wann Dir se permanent wëllt applizéieren, musst Dir déi folgend Datei änneren:

# vi /etc/sysctl.conf

Füügt déi folgend Linn derbäi:

fs.file-max=500000

Natierlech kënnt Dir d'Zuel pro Äre Besoinen änneren. Fir d'Ännerungen erëm z'iwwerpréiwen benotzt:

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

D'Benotzer mussen ausloggen an erëm aloggen fir datt d'Ännerungen a Kraaft trieden. Wann Dir d'Limite direkt benotze wëllt, kënnt Dir de folgende Kommando benotzen:

# sysctl -p

Set User Level Open File Limiten an Linux

Déi uewe genannte Beispiller hu gewisen wéi Dir global Limiten setzt, awer Dir wëllt Limiten pro Benotzerbasis applizéieren. Fir dësen Zweck, als Benotzerroot, musst Dir déi folgend Datei änneren:

# vi /etc/security/limits.conf

Wann Dir e Linux Administrateur sidd, proposéiere ech Iech datt Dir mat dëser Datei ganz vertraut sidd a wat Dir dermat maache kënnt. Liest all d'Kommentaren an et, well et grouss Flexibilitéit ubitt wat d'Systemressourcen verwalten andeems d'Benotzer/Gruppen op verschiddene Niveauen limitéieren.

D'Linnen déi Dir sollt addéieren huelen déi folgend Parameteren:

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

Hei ass e Beispill fir eng mëll an haart Limite fir de Benotzer marin ze setzen:

## Example hard limit for max opened files
marin        hard nofile 4096
## Example soft limit for max opened files
marin        soft nofile 1024

Finale Gedanken

Dëse kuerzen Artikel huet Iech e Basis Beispill gewisen wéi Dir d'Global- a Benotzerniveau Limite fir maximal Unzuel vun opgemaachte Dateien iwwerpréift a konfiguréiere kënnt.

Wärend mir just d'Uewerfläch gekraazt hunn, encouragéieren ech Iech e méi detailléierte Bléck a liesen iwwer /etc/sysctl.conf an /etc/security/limits.conf a léiere wéi se se benotzen. Si wäert eng grouss Hëllef fir Iech enges Daags.