Dnes můj server selhal s Too many open files in system:
, ale já již mají vysoké hodnoty, jaká je maximální hodnota?
Mám pocit, že na google neexistují dobré výsledky, které by vysvětlovaly, co je třeba vzít v úvahu při nastavování těchto hodnot, pouze říkají, že je třeba nastavit 100k.
Mám 32 GB RAM server, který právě používá pouze 10 GB, předpokládám, že zvýšení limitů souborů na velmi vysoké hodnoty zvýší využití RAM, existuje nějaký vzorec, který můžete použít k výpočtu? Jako pro 8 GB RAM může být otevřeno X souborů?
Aktuální nastavení:
cat /proc/sys/fs/file-max 100000 ulimit -Hn 1048576 ulimit -Sn 1024
Komentáře
Odpověď
Jak říká Kusalananda, zvyšování file-max
nebude mít přímý dopad na využití paměti, ale umožní procesům otevřít více deskriptorů souborů, které budou mít efekt „knock-on“ (jak ze sledování popisů souborů v jádře, tak ze zvýšené paměti využití v procesech využívajících tyto popisy a deskriptory) – komentáře k jádru navrhují přibližně jeden kilobajt na soubor pro data jádra a sníží výchozí hodnotu file-max
(8192), pokud to skončí nahoru představující více než 10% paměti při spuštění systému ( tj. existuje pouze 80 MiB paměti RAM). Maximální hodnota stanovená jádrem je maximální hodnota, kterou lze uložit do proměnné typu long
v jazyce C na vaší architektuře.
Pokud zvýšíte file-max
, měli byste také zvýšit inode-max
; dokumentace k jádru říká, že by to mělo být „3-4krát větší než hodnota v file-max, protože stdin, stdout a síťové zásuvky také potřebují strukturu inode zvládněte je. “
Pamatujte, že stisknutí file-max
bude mít za následek zprávu v protokolu jádra, která řekne„ VFS: maximální limit souboru n dosažen ”S příslušnou hodnotou pro n . Pokud to ve svých protokolech nemáte, buď neuděláte file-max
, nebo příliš filtrujete své protokoly (jedná se o zprávu protokolu na úrovni informací).
(file-max
neomezuje procesy pomocí CAP_SYS_ADMIN
, takže zásahem nezastavíte vše.)
Komentáře
- Neexistuje tedy žádná nevýhoda v tom, že máte libovolně vysoké počty? ' Nevidím
inode-max
v mém systému vůbec nějaké? Ubuntu 16.04 zde. Chci jen zabránit tomu, aby se můj server znovu zhroutil, provozuji na tomto serveru více webových služeb a nestarám se ' o využití zdrojů - Nevýhodou je, že uprchlé procesy nebude chycen celkovým limitem na popisy souborů, takže by mohly způsobit hladovění zdrojů jinými způsoby.
ulimit
zobrazí / nastaví limit prostředků na proces.