Košík je prázdný

V systému Linux, včetně distribuce CentOS 7, je limit souborů (file descriptors) klíčovým parametrem, který určuje, kolik souborů může být otevřeno systémem nebo uživatelem najednou. Tento limit může být potřebný zvýšit pro náročné aplikace nebo servery, které pracují s velkým množstvím souborů. V tomto článku popíšeme, jak zvýšit tento limit na CentOS 7.

Přehled

Systémový limit pro otevřené soubory (file descriptors) lze nastavit na dva základní úrovně: globální (pro celý systém) a uživatelskou (pro konkrétního uživatele). Zvýšení tohoto limitu může pomoci předcházet problémům spojeným s dosažením maximálního počtu otevřených souborů, což může vést k selhání aplikací nebo systému.

Globální limit

  1. Úprava systémového limitu Pro zvýšení globálního limitu otevřených souborů editujte soubor /etc/sysctl.conf a přidejte následující řádky:

    fs.file-max = 2097152
    

    Tato hodnota nastaví maximální počet otevřených souborů na 2097152. Hodnotu lze upravit podle potřeby.

  2. Aktivace změn Změny aktivujte pomocí příkazu:
    sudo sysctl -p
    ​

Uživatelský limit

  1. Úprava limitu pro uživatele Pro specifické uživatele lze limit nastavit editací souboru /etc/security/limits.conf. Přidejte následující řádky pro uživatele username:

    username soft nofile 1024
    username hard nofile 4096
    

    Tím se nastaví "soft" limit na 1024 a "hard" limit na 4096 otevřených souborů pro uživatele username. "Soft" limit může být dynamicky změněn aplikacemi, zatímco "hard" limit slouží jako maximální horní mez.

  2. Použití limitů při spouštění aplikací Aby se nové limity projevily, může být nutné restartovat služby nebo nově přihlášené uživatele. V některých případech, zejména u daemonů, je vhodné přidat příslušné nastavení přímo do skriptů, které služby spouštějí.

 

Použití nástroje ulimit

Pro dočasné změny limitu v aktuální sezení můžete použít příkaz ulimit. Pro zvýšení soft limitu na 2048 otevřených souborů v aktuálním shellu můžete použít:

ulimit -Sn 2048

A pro nastavení hard limitu:

ulimit -Hn 4096

Tyto změny platí pouze pro aktuální shell a nejsou trvalé.

 

Zvýšení limitu otevřených souborů na CentOS 7 může být nezbytné pro správnou funkci některých aplikací a služeb. Výše uvedené kroky by měly poskytnout jasný postup, jak tento limit nastavit jak na globální, tak na uživatelské úrovni. Je důležité mít na paměti, že příliš vysoké limity mohou mít negativní vliv na systémové zdroje, a proto by měly být nastaveny s ohledem na dostupné hardwarové a systémové zdroje.