Azureus a chybové hlášení Too many open files (Linux, Ubuntu)

Dle mého názoru je v současné době Azureus jedním z nejlepších klientů sítě BitTorrent.

Pokud je zapnut delší dobu, může se pod operačním systémem Linux objevovat u jednotlivých torrentů chybové hlášení (Too many open files), neboť Azureus si otevírá průběžně dočasné soubory pro odkládání.

U mnou používaného Ubuntu 7.10 Gutsy Gibbon je nastavena jako výchozí hodnota pro každou spuštěnou aplikaci maximálně 1024 souborů. Zjistit to lze příkazem ulimit.

BASH:
  1. user@linux:~$ ulimit -a
  2. core file size          (blocks, -c) 0
  3. data seg size           (kbytes, -d) unlimited
  4. scheduling priority             (-e) 0
  5. file size               (blocks, -f) unlimited
  6. pending signals                 (-i) 32768
  7. max locked memory       (kbytes, -l) 32
  8. max memory size         (kbytes, -m) unlimited
  9. open files                      (-n) 1024
  10. pipe size            (512 bytes, -p) 8
  11. POSIX message queues     (bytes, -q) 819200
  12. real-time priority              (-r) 0
  13. stack size              (kbytes, -s) 8192
  14. cpu time               (seconds, -t) unlimited
  15. max user processes              (-u) 32768
  16. virtual memory          (kbytes, -v) unlimited
  17. file locks                      (-x) unlimited

Jak je vidět, u položky open files je hodnota 1024. Je několik způsobů, jak navýšit tento limit.

1. Navýšení limitu maximálního počtu otevřených souborů selektivně a dočasně pro jednu aplikaci

Pokud nechceme měnit hodnotu maximálního počtu souborů globálně, je možné použít následující spuštění programu. Je to jeden řádek a bude vyžadováno mít práva uživatele root, v Ubuntu je nutné mít svůj uživatelský účet ve skupině Admin. Za položku uzivatel je nutné nahradit název svého účtu:

BASH:
  1. sudo bash -c 'ulimit -n 4096; sudo -u uzivatel /usr/bin/azureus'

Výsledek je takový, že program ulimit se spustí s právy root a nastaví kýženou maximální hodnotu pro současné sezení a poté se spustí Azureus, ale již jako normální uživatel. S výše uvedeného vyplývá, že je nutné takto spouště tohoto klienta sítě BitTorrent opakovaně tímto způsobem.

2. Navýšení limitu maximálního počtu otevřených souborů globálně a permanentně pro uživatele

I v toto případě budeme potřebovat mít práva root, tj. administrátora systému. Otevřeme si soubor /etc/security/limits.conf. Například příkazem z grafického emulátoru konsole a v něm zapíšeme příkaz gksu gedit /etc/security/limits.conf.

Pak přidáme následující dva řádky:

BASH:
  1. uzivatel    hard    nofile    8192
  2. uzivatel    soft    nofile    4096

Opět nahradíme položku uzivatel svým uživatelským jménem. Po změně je nutné se odhlásit a znovu přihlásit.

První řádek (hard) nastavuje hodnotu, která je v systému pro uživatele nepřekročitelná. Druhý řádek (soft) určuje, výchozí hodnotu pro uživatele. Může být menší, než-li ta stanovená direktivou hard správcem systému. Uživatel poté může nastavovat požadovaný limit maximálního počtu otevřených souborů v rozmezí od teoretické nuly až po tento limit s direktivou hard, například již výše zmiňovaným příkazem ulimit.

Doporučení na závěr

Pro ty, které by to více zajímalo, doporučuji seznámit se s /proc/sys/fs/file-nr a /proc/sys/fs/file-max :-)

Slabé...Jde to...Pěkné...Perfektní...Excelentní... (hlasováno 2x, průměr: 4,00 z max. 5)
Loading ... Loading ...
Obdobné články:

Zanechte, prosím, komentář

XHTML: Můžete použít tyto značky: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>