Portál AbcLinuxu, 14. července 2025 00:10


Dotaz: Nelze otevřít soubor

29.9.2005 13:03 Milan Dobeš | skóre: 22
Nelze otevřít soubor
Přečteno: 309×
Odpovědět | Admin
Ahoj, mám aplikaci která zpracovává soubory z win2000 serveru nahrávané na Linux přes sambu. Ty soubory jsou tvořeny postupně cca 5 za minutu, během zpracovávání souboru aplikace vytváří a maže cca 10 pomocných souborů a do cca 20 trvale otevřených souborů zapisuje.

Vše bylo OK do té doby, než se ten win server na den seknul a po jeho zprovoznění mi nahráli 2000 souborů najednou. Aplikace po cca 300 souborech nahlásila chybu že nemůže otevřít soubor. Stačilo ji po několika sekundách nechat pokračovat a jela bez chyby dál dalších cca 300 souborů.

Laborování s /proc/sys/fs/file-max bylo bez výsledku. Zkoušel jsem to na RH7.3, RH9 a Centos 2.1 na různém HW. RH končily po přibližně 300 souborech, Centos vydržel déle, přestože jel na nejslabším HW.

Vyřešil jsem to prodlevou 10s po cca 50 souborech a chyba se nekoná takže mi to žíly nerve. Nicméně co by mohlo mít na toto chování vliv? Jaká systémová proměnná by to mohla ovlivnit?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.9.2005 14:28 mireceq
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
man ulimit
29.9.2005 15:11 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Jenže defaultně jde otevřít kilo souborů najednou, tohle bude spíš nějaký limit Samby...
29.9.2005 15:30 Milan Dobeš | skóre: 22
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
díky za odpověď, limit samby to není, samba slouží pouze pro nasdílení disku z win2000 serveru. Chyby padají i když ty soubory nakopíruju do příslušného adresáře z Linuxu. Jinak při zpracování počet otevřených souborů nenarůstá, protože zpracovávaný soubor je vždy uzavřen a smazán včetně pomocných pracovních souborů.

Na ten ulimit se podívám a dám vědět. Zatím díky.
30.9.2005 12:00 Milan Dobeš | skóre: 22
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Tak jsem se díval na hodnoty vracené ulimitem na RH7.3, RH9 i Centosu a jsou naprosto stejné. Takže tím nelze vysvětlit větší odolnost Centosu (faktem je že je na 2.6 kernelu a RH jsou na 2.4).

Zajímalo by mně jestli principiálně když uzavřu v linuxu soubor, eventuálně jej i smažu, jestli mi ihned zmizí z mnou užívaných systémových prostředků a nebo až po nějaké době. Protože potom bych si dokázal vysvětlit to chování tím, že když používám v aplikaci velké množství souborů, mohu se dostat přes limit 1024, přesto že v jedné chvíli mám otevřeno jen několik desítek souborů.
30.9.2005 12:13 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžete testovat prográmkem z odtud, nastavovat různé hodnoty file-max a ulimit -n...

Taky může být problém v SELinuxu nebo nějakém jiném bezpečnostním patchi?
30.9.2005 13:25 Milan Dobeš | skóre: 22
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Díky, vyzkouším, SELinux mám všude vypnutý, s /proc/sys/fs/file-max jsem zkoušel laborovat ručně bez výsledků. Zkusím ještě měnit ulimit -n. Na všech serverech kde jsem to testoval je kernel kompilovaný s ABI patchem. Možná je to v něm...

Jinak nevíte někdo když uzavřu v linuxu soubor, eventuálně jej i smažu, jestli mi ihned zmizí z mnou užívaných systémových prostředků limitovaných "ulimit -n" a nebo až po nějaké době, eventuálně po ukončení aplikace?
30.9.2005 14:18 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
A to je tak těžké to vyzkoušet? (Hint: otevírám fd dokud to jde - to dělá ten prográmek :-) , pak jeden fd zavřu, a zusím hned otevřít...)
3.10.2005 16:06 Milan Dobeš | skóre: 22
Rozbalit Rozbalit vše Re: Nelze otevřít soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem si nastavil ulimit -n na dvojnásobek (2048) a výsledek je naprosto totožný. Chyba spadne po zpracování přesně stejného počtu souborů. Takže jsem s rozumem v koncích.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.