Weboldal keresés

Hogyan lehet növelni a megnyitott fájlok számának korlátját Linuxban


Linux alatt módosíthatja a megnyitott fájlok maximális számát. Ezt a számot az ulimit paranccsal módosíthatja. Lehetővé teszi a shell vagy az általa elindított folyamat számára rendelkezésre álló erőforrások vezérlését.

Olvassa el még: Állítsa be a Linux futtatási folyamatok korlátait felhasználónkénti szinten

Ebben a rövid oktatóanyagban megmutatjuk, hogyan ellenőrizheti a megnyitott fájlok és fájlleírások jelenlegi korlátját, de ehhez root hozzáféréssel kell rendelkeznie a rendszerhez.

Először is nézzük meg, hogyan tudhatjuk meg a megnyitott fájlleírók maximális számát a Linux rendszeren.

Keresse meg a Linux Open File Limit elemet

Az érték a következő helyen van tárolva:

cat /proc/sys/fs/file-max

818354

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

Például egy CentOS szerveremen a korlát a 818354 értékre volt állítva, míg az általam otthon futtatott Ubuntu szerveren az alapértelmezett korlát a következő volt. 176772 értékre állítva.

Ha látni szeretné a kemény és lágy határokat, használja a következő parancsokat:

Ellenőrizze a kemény határértéket Linuxban

ulimit -Hn

4096

Ellenőrizze a lágy korlátokat Linuxban

ulimit -Sn

1024

A különböző felhasználók kemény és lágy értékeinek megtekintéséhez egyszerűen váltson felhasználót a „su” gombbal arra a felhasználóra, amelyet ellenőrizni szeretne.

Például:

su marin
ulimit -Sn

1024
ulimit -Hn

4096

A rendszerszintű fájlleírók korlátainak ellenőrzése Linuxban

Ha kiszolgálót futtat, egyes alkalmazásai magasabb korlátokat igényelhetnek a megnyitott fájlleírók számára. Jó példa erre a MySQL/MariaDB szolgáltatások vagy az Apache webszerver.

Növelheti a megnyitott fájlok korlátját Linux alatt az fs.file-max kerneldirektíva szerkesztésével. Erre a célra használhatja a sysctl segédprogramot.

A Sysctl a kernelparaméterek futásidejű konfigurálására szolgál.

Ha például a megnyitott fájlok korlátját 500 000-ra szeretné növelni, a következő parancsot használhatja rootként:

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 végrehajtott változtatások csak a következő újraindításig maradnak aktívak. Ha véglegesen alkalmazni szeretné őket, szerkesztenie kell a következő fájlt:

vi /etc/sysctl.conf

Adja hozzá a következő sort:

fs.file-max=500000

Természetesen a számot igény szerint módosíthatja. A változtatások ismételt ellenőrzéséhez használja:

cat /proc/sys/fs/file-max

A felhasználóknak ki kell jelentkezniük, majd újra be kell jelentkezniük ahhoz, hogy a változtatások érvénybe lépjenek. Ha azonnal alkalmazni szeretné a korlátot, használja a következő parancsot:

sysctl -p

Felhasználói szintű Fájlok megnyitási korlátainak beállítása Linuxban

A fenti példák megmutatták, hogyan állíthat be globális korlátokat, de érdemes lehet felhasználónként korlátokat alkalmazni. Ebből a célból root felhasználóként szerkesztenie kell a következő fájlt:

vi /etc/security/limits.conf

Ha Ön Linux rendszergazda, azt javaslom, hogy ismerkedjen meg ezzel a fájllal és azzal, hogy mit tehet vele. Olvassa el az összes megjegyzést, mivel a felhasználók/csoportok különböző szinteken történő korlátozásával nagy rugalmasságot biztosít a rendszererőforrások kezelésében.

A hozzáadandó sorok a következő paramétereket veszik fel:

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

Íme egy példa lágy és kemény korlátok beállítására a marin felhasználó számára:

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

Végső gondolatok

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

Miközben csak megkarcoltuk a felszínt, nagyon ajánlom, hogy tekintse át részletesebben és olvassa el az /etc/sysctl.conf és az /etc/security/limits.conf és megtanulják használni őket. Egy napon nagy segítségedre lesznek.