Ma a szerverem összeomlott Too many open files in system:
-vel, de én már vannak magas értékei, mi ennek a maximális értéke?
Úgy érzem, hogy a Google-on nincsenek ilyen jó eredmények, elmagyarázva, hogy mit kell figyelembe venni ezen értékek beállításakor, csak azt mondják, hogy állítsd 100 ezerre.
Van egy 32 GB-os RAM-kiszolgálóm, amely jelenleg csak 10 GB-ot használ, feltételezem, hogy a fájlkorlátok nagyon magas értékekre történő növelése növeli a RAM-felhasználást. Van-e valamilyen képlet ennek kiszámításához? Mint például 8 GB RAM esetén megnyithat X fájlt?
Aktuális beállítások:
cat /proc/sys/fs/file-max 100000 ulimit -Hn 1048576 ulimit -Sn 1024
megjegyzések
Válasz
Mint Kusalananda mondja, növekszik a file-max
nem lesz közvetlen hatással a memória használatára, de lehetővé teszi a folyamatok számára, hogy több fájlleírót nyissanak, amelyek bekapcsoló hatást gyakorolnak (mind a kernelben található fájlleírások nyomon követése, mind a megnövekedett memória miatt). használat a folyamatokban, amelyek ezeket a leírásokat és leírásokat használják) – a kernel megjegyzései fájlonként körülbelül egy kilobájtot javasolnak a kernel adataihoz, és ha ez véget ér, csökkenteni fogja az file-max
(8192) alapértelmezett értékét a rendszer indításakor a memória több mint 10% -át képviseli ( ie csak 80 MiB RAM van). A kernel által kiszabott maximális érték az a maximális érték, amelyet az architektúráján a C típusú long
változóban lehet tárolni.
Ha növeli a file-max
, növelnie kell az inode-max
; a rendszermag dokumentációja szerint ennek „3-4-szer nagyobbnak kell lennie, mint a file-max értéke, mivel az stdin, az stdout és a hálózati aljzatoknak is inode struktúrára van szükségük kezelje őket. ”
Ne feledje, hogy a file-max
megütése egy kernel naplóüzenetet eredményez:„ VFS: file-max limit n elérte ”, A n megfelelő értékével. Ha nincs ilyen a naplóiban, akkor vagy nem nyomja meg a file-max
elemet, vagy túlságosan kiszűri a naplóit (ez egy információszintű naplóüzenet).
(file-max
nem korlátozza a folyamatokat CAP_SYS_ADMIN
-vel, így az ütése nem állít meg mindent.)
Megjegyzések
- Tehát nincs hátránya az önkényesen magas számoknak? Nem látom ' a rendszeremben
inode-max
? Ubuntu 16.04 itt. Csak azt akarom megakadályozni, hogy a szerverem újra összeomlik, több webszolgáltatást futtatok ezen a kiszolgálón, és nem ' nem érdekel az erőforrások kihasználása - Hátránya, hogy elszabadult folyamatok nem ragadja meg a fájlleírások általános korlátja, ezért más módon okozhatják az erőforrások éhezését.
ulimit
megmutatja / beállítja a folyamatonkénti erőforráskorlátot.