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.
-
user@linux:~$ ulimit -a
-
core file size (blocks, -c) 0
-
data seg size (kbytes, -d) unlimited
-
scheduling priority (-e) 0
-
file size (blocks, -f) unlimited
-
pending signals (-i) 32768
-
max locked memory (kbytes, -l) 32
-
max memory size (kbytes, -m) unlimited
-
open files (-n) 1024
-
pipe size (512 bytes, -p) 8
-
POSIX message queues (bytes, -q) 819200
-
real-time priority (-r) 0
-
stack size (kbytes, -s) 8192
-
cpu time (seconds, -t) unlimited
-
max user processes (-u) 32768
-
virtual memory (kbytes, -v) unlimited
-
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:
-
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:
-
uzivatel hard nofile 8192
-
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
- EncFS – šifrováný souborový systém v uživatelském prostoru (user-space) v Ubuntu (Linux)
- UNISON (multiplatformní synchronizace souborů a adresářů)
- Sdílené složky ve VirtualBoxu s hostujícím (guest) Ubuntu 8.04 (VBoxGuestAdditions, Shared Folders, uid)
- Tisk dokumentů do PDF v Ubuntu 6.06 Dapper a 6.10 Edgy Eft



(hlasováno 2x, průměr: 4,00 z max. 5)



