GNU/Linux >> Znalost Linux >  >> Linux

Maximální počet otevřených souborů pro pracovní proces

echo -n "Max open files=20:20" > /proc/$pid/limits

...funguje v RHEL5.5 a RHEL6.7.

Všimněte si, že "-n" je povinné; koncový nový řádek vygeneruje stížnost na neplatné argumenty.


Další možností je použít příkaz prlimit (z balíčku util-linux). Například pokud chcete nastavit maximální počet otevřených souborů pro běžící proces na 4096:

prlimit -n4096 -p pid_of_process


Můžete použít gdb, proniknout do procesu, zavolat výše uvedená syscalls ke zvýšení limitu, který vás zajímá, pak pokračovat v práci a ukončit gdb. Několikrát jsem tímto způsobem upravoval věci za běhu.

Vaše aplikace by nefungovala, ale jen na chvíli zamrzla, když jste prováděli hovor. pokud budete rychlí (nebo to napíšete!), pravděpodobně to nebude patrné.


Jako správce systému :/etc/security/limits.conf soubor řídí toto na většině instalací Linuxu; umožňuje nastavit limity na uživatele. Budete chtít řádek jako myuser - nofile 1000 .

V rámci procesu :Volání getrlimit a setrlimit řídí většinu limitů alokace zdrojů pro jednotlivé procesy. RLIMIT_NOFILE řídí maximální počet deskriptorů souborů. K jeho volání budete potřebovat příslušná oprávnění.


Linux
  1. Zkontrolujte limit otevřeného FD pro daný proces v Linuxu

  2. Počítání otevřených souborů na proces

  3. Jak nastavit nginx max otevřené soubory?

  1. Ekvivalent Process Monitor pro Linux?

  2. Jak zabránit procesu v zápisu souborů

  3. otevřený port 8080 pro poslech

  1. 8 Linuxových příkazů pro efektivní řízení procesů

  2. Jak zjistím, jaké soubory má proces otevřené?

  3. Jsou soubory .pid spolehlivé pro určení, zda je proces spuštěn?