Portál AbcLinuxu, 13. května 2024 17:25
Tak máme - já a můj kamarád - další bezva problém, možná hodně tvrdý oříšek
Mám síť, do sítě připojené diskless klienty bootující pomocí BOOTP protokolu a server s NFS filesystémem z něhož se bootuje. Při bootování nejprve DHCP server BOOTP protokolem pošle jádro, nebo na něj přesměruje, přičemž jádro je sdílené pomocí TFTP, pak se načte nějaký minimální initrd (ať už z NFS, nebo z image, to je jedno), pak se přimountuje hlavní root skrze NFS a nastartuje se zbytek systému. Klienti standartně nabootují do runlevelu 3, nebo 5 podle toho jestli chci textový, nebo grafický login. Zkoušel jsem xdm i kdm, potud vše v pořádku a bez problémů. (Díky Tome za velmi vydatnou pomoc.)
A teď se přihlásí klient. Spustí si třeba WindowMaker a pracuje, opět vše zcela bez problémů. Nezáleží na tom jako jaký uživatel se hlásí, může být třeba root.
Jenomže, pokud si uživatel zvolí KDE, problém nastane. Během několika vteřin (během zobrazení splash screenu) začne klientský počítač generovat velmi masivní provoz na síti, datový tok se pohybuje v případě obyčejného uživatele okolo 1MB/s (slovy jednoho megabytu), v případě uživatele root je zátěž ještě tak o 60% vyšší.
Díval jsem se tcpdumpem na to, čím je provoz tvořen a působilo to na mne dojmem, jako by si klient ověřoval atributy souborů, jestli jsou read/write/executable a pod. Bohužel v tento okamžik nemám k dispozici výpis, poslal bych pár řádků na ukázku.
Vypozorovali jsme, že na provoz v síti má veliký vliv daemon kded. Po jeho zabití se datový tok sníží na méně než 1/10, téměř ustane, ale oproti WindowMakeru je pořád výrazně vyšší. Po zabití kded jsme sice nepozorovali viditelné znefunkčnění, ale jako řešení to moc nevyhovuje.
Nejlegračnější na celé věci je, že se nám stejný problém projevuje ve dvou zcela nezávislých sítích a na odlišných distribucích Linuxu a různých verzích KDE a zcela odlišných HW konfiguracích klientů. Já jsem to zkoušel na SuSE 8.1, Tomáš na velmi updateovaném SuSE 7.3 a nejnovějším Gentoo (v tento okamžik tak týden stará distribuce?) kompilovaném kompletně včetně gcc na PC, kde bylo spuštěno. V případě SuSE 8.1 jsem použil defaultní KDE verze 3.0.3, v případě Gentoo to byla tuším verze 3.1. Aby toho nebylo málo, liší se i distribuce Linuxu na serverech a tudíž i verze NFS, v mém případě je i na serveru SuSE 8.1, v případě Tomášova Gentoo je na serveru prehistorické SuSE 7.1 s několika málo updaty. Sítě se dokonce nacházejí v různých částech Prahy
Nějaký nápad?
Síť je normální 100MBit přepínaný ethernet. S nastavením KDE jsem už experimentoval bez velkých výsledků, náhledy se nezobrazují, animace a podobné fíčurky jsem omezil na minimum. KDE jsou jenom spuštěné. V klientech je dostatek paměti - 256MB a využito z ní bývá tak okolo 60 -100MB, zbytek je cache, nebo zcela nevyužitá pamět. Počítače neswapují ani při spuštění Mozilly a OpenOffice najednou.
Tak proč se datový tok drží téměř neustále na 1MB/s (celkově, z klienta na server zhruba stejně jako naopak) i když KDE jen tak stojí a nikdo s nimi nic nedělá?
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.