Tänään palvelimeni kaatui palvelimella Too many open files in system:
, mutta minä joilla on jo korkeat arvot, mikä on tämän enimmäisarvo?
Minusta tuntuu siltä, että Googlessa ei ole hyviä tuloksia tälle, selittäen, mitä on otettava huomioon näiden arvojen asettamisessa, he vain sanovat asettavan sen tykkäämään 100 kt.
Minulla on 32 Gt: n RAM-palvelin, joka käyttää vain 10 Gt juuri nyt. Oletan, että tiedostorajojen nostaminen erittäin korkeiksi arvoiksi lisää RAM-muistin käyttöä, onko olemassa jonkinlainen kaava, jonka avulla voit laskea tämän? voi olla X tiedostomäärä auki?
Nykyiset asetukset:
cat /proc/sys/fs/file-max 100000 ulimit -Hn 1048576 ulimit -Sn 1024
kommentit
Vastaa
Kuten Kusalananda sanoo, kasvaa file-max
ei vaikuta suoraan muistin käyttöön, mutta se sallii prosessien avata enemmän tiedostokuvaajia, joilla on kopioiva vaikutus (sekä seuraamalla tiedostojen kuvauksia ytimessä että lisääntynyttä muistia) käyttö prosesseissa, jotka käyttävät näitä kuvauksia ja kuvaajia) – ytimen kommentit ehdottavat noin yhden kilotavun tiedostoa ytimen tiedoille ja vähentävät file-max
(8192) oletusarvoa, jos se loppuu edustaa yli 10% muistista järjestelmän käynnistyessä ( ie RAM-muistia on vain 80 Mt). Ytimen asettama enimmäisarvo on suurin arvo, joka voidaan tallentaa arkkitehtuurisi C-tyypin muuttujaan long
C.
Jos korotat file-max
, lisää myös inode-max
; ytimen dokumentaatiossa sanotaan, että tämän pitäisi olla ”3-4 kertaa suurempi kuin tiedosto-max-arvo, koska myös stdin-, stdout- ja verkkopistorasiaan tarvitaan inode-rakenne käsittele niitä. ”
Huomaa, että osuman file-max
lyönti johtaa ytimen lokiviestiin, jossa sanotaan” VFS: file-max limit n saavutettu ”, Jonka arvo on n . Jos sinulla ei ole sitä lokissasi, et joko osu file-max
-kohtaan tai suodatat lokiasi liikaa (se on tietotason lokiviesti).
(file-max
ei rajoita prosesseja arvolla CAP_SYS_ADMIN
, joten lyöminen ei lopeta kaikkea.)
Kommentit
- Joten ei ole mitään haittapuolta mielivaltaisen korkeiden lukujen saamisessa? En näe ' mitään
inode-max
järjestelmässäni missään tapauksessa? Ubuntu 16.04 täällä. Haluan vain estää palvelimeni kaatumasta uudelleen, suoritan useita verkkopalveluja tällä palvelimella ja en välitä resurssien käytöstä div
ulimit
näyttää / asettaa prosessikohtaisen resurssirajan.