Hogyan növelhetjük a megnyitott fájlok számának korlátozását Linuxban

A Linuxban megváltoztathatjuk a megnyitott fájlok maximális számát. Ezt a számot az ulimit parancs segítségével módosíthatja. Lehetőséget biztosít arra, hogy szabályozza a shell vagy az általa indított folyamat számára rendelkezésre álló erőforrásokat.

Legyen még olvasható: Linux Running Processes Limits on Per-Userl Level

Ezzel a rövid bemutatóval megmutatjuk, hogyan ellenőrizheti a megnyitott fájlok és fájlleírások aktuális limitjét, de ehhez root hozzáféréssel kell rendelkeznie a rendszeréhez.

Először nézzük meg, hogyan tudjuk kideríteni a megnyitott fájlleírók maximális számát a Linux rendszerünkön.

Find Linux Open File Limit

Az értéket a következő helyen tároljuk:

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

A szám, amit látni fogsz, azt mutatja, hogy egy felhasználó hány fájlt nyithat meg bejelentkezési munkamenetben. Az eredmény a rendszertől függően eltérő lehet.

Egy CentOS szerveremen például a limit 818354-re volt beállítva, míg az Ubuntu szerveren, amit otthon futtatok, az alapértelmezett limit 176772 volt.

Ha látni szeretné a hard és soft limiteket, akkor a következő parancsokat használhatja:

Check Hard Limit in Linux

# ulimit -Hn4096

Check Soft Limits in Linux

# ulimit -Sn1024

A hard és soft értékek megtekintéséhez a különböző felhasználók esetében egyszerűen a “su” paranccsal válthat felhasználót arra a felhasználóra, amelynek a limitjét ellenőrizni szeretné.

Egy példa:

# su marin$ ulimit -Sn1024
$ ulimit -Hn4096

Hogyan ellenőrizze a rendszerszintű fájlleírók határait Linuxban

Ha szervert üzemeltet, egyes alkalmazásai magasabb határokat igényelhetnek a megnyitott fájlleírókhoz. Jó példa erre a MySQL/MariaDB szolgáltatások vagy az Apache webszerver.

A megnyitott fájlok limitjét Linuxban a fs.file-max kernel direktíva szerkesztésével növelheti. Ehhez a sysctl segédprogramot használhatja.

A sysctl a kernel paramétereinek futásidejű konfigurálására szolgál.

A megnyitott fájlok limitjének 500000-re való növeléséhez például root felhasználóként a következő parancsot használhatja:

# sysctl -w fs.file-max=500000

A megnyitott fájlok aktuális értékét a következő paranccsal ellenőrizheti:

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

A fenti paranccsal az elvégzett módosítások csak a következő újraindításig maradnak aktívak. Ha véglegesen alkalmazni szeretné őket, akkor a következő fájlt kell szerkesztenie:

# vi /etc/sysctl.conf

Adja hozzá a következő sort:

fs.file-max=500000

A számot természetesen igényei szerint módosíthatja. A módosítások ismételt ellenőrzéséhez használja:

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

A felhasználóknak ki kell jelentkezniük és újra be kell jelentkezniük, hogy a módosítások hatályba lépjenek. Ha azonnal alkalmazni szeretné a korlátozást, akkor a következő parancsot használhatja:

# sysctl -p

Felhasználói szintű nyitott fájl korlátozások beállítása Linuxban

A fenti példák, megmutatták, hogyan lehet globális korlátozást beállítani, de előfordulhat, hogy felhasználó alapon is szeretne korlátozást alkalmazni. Ehhez root felhasználóként a következő fájlt kell szerkesztened:

# vi /etc/security/limits.conf

Ha Linux rendszergazda vagy, javaslom, hogy nagyon ismerd meg ezt a fájlt és azt, hogy mit tudsz vele csinálni. Olvassa el az összes benne lévő megjegyzést, mivel nagy rugalmasságot biztosít a rendszer erőforrásainak kezelésében a felhasználók/csoportok különböző szintű korlátozásával.

A sorok, amelyeket hozzá kell adnia, a következő paramétereket veszik fel:

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

Itt egy példa a soft és hard korlátok beállítására a felhasználó marin:

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

Végső gondolatok

Ez a rövid cikk egy alapvető példát mutatott arra, hogyan ellenőrizheti és konfigurálhatja a globális és felhasználói szintű korlátokat a megnyitott fájlok maximális számára.

Míg csak a felszínt karcoltuk, erősen bátorítom, hogy nézze meg és olvassa el részletesebben az /etc/sysctl.conf és az /etc/security/limits.conf állományokat, és tanulja meg, hogyan használja őket. Ezek egy nap nagy segítségedre lesznek.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.