uptime... [was: Re: Redhat v ceske nemilosti?]
Cejka Rudolf
cejkar na dcse.fee.vutbr.cz
Sobota Duben 21 21:07:52 CEST 2001
Dan Ohnesorg <dan na feld.cvut.cz> wrote:
> Jinak ten load se projevuje, tezko se tam prihlasuje a kdyz jsem chtel
> neco delat na databazi clenu pres php, tak jsem mel potize s tim, ze
> scripty timeoutovaly.
?!?! Hmm, hmm...
Pokud se omezim pouze na Linux a budu-li trochu konkretnejsi,
aby jsme se stale neomezovali jen na blize nespecifikovane
operacni systemy, tak:
Velikost loadu s temito problemy vubec nemusi souviset. V tomto
pripade ovsem neznam dostatek skutecnosti, ktere to mohou ovlivnit,
a rozhodnuti musim nechat na jinych lidech. Pravdepodobnost prime
souvislosti s loadem je ale rozhodne mnohem mensi, nez napriklad
ve FreeBSD.
Dam extremni protipriklad (opakuji, ze se to FreeBSD netyka): Mam
paskovou mechaniku. Dam "mt rewind" tak, aby operace trvala rozumnou
dobu, rekneme minimalne minutu. Po dobu trvani teto operace sice
procesor a disky prakticky nic nedelaji, ale presto load smeruje
k hodnote o jednicku vyssi. U nezatizeneho systemu by tedy load
casem stoupl az blizko k jednicce. Kdyz podobnym stylem vygeneruji
vetsi pocet takovych procesu, muzu mit load prakticky libovolne
vysoky, a presto budou procesor, disky a pametova sbernice naprosto
nezatizene. Za teto situace si nedovedu predstavit ani jeden rozumny
duvod, proc by mely takoveto skripty timeoutovat. Ale mozna se
mylim a rad se necham poucit.
Nevim, jak to vidi ostatni, ale ja osobne to povazuji za jednu z hodne
velkych chyb Linuxu, ktera mi docela komplikuje ladeni systemu na
optimalni vykon (procentualni informace o idle a vyuziti procesoru
jednotlivymi procesy jdou take podle plotu, ale to uz je obecny
problem). V tomto pripade si myslim, ze procesor nejuzsim mistem
neni, jak by si podle loadu urcite mnoho lidi myslelo. Z toho, co jsem
videl, bych se podival na (nevidel jsem iostat, systat, netstat, ani
zadny velky uptime):
* Velikost pameti 256 MB RAM na 1000 procesu je dost malo a kdyz
uz bych neco vyzdvihoval, tak urcite prave toto: Ze zvlada
1000 spojeni s 256 RAM a neslozi se (je-li 1 spojeni = 1 proces).
Pro diskovou cache asi moc mista neni a kdyz ma tento system
nastartovat nejaky proces nebo nahrat stranku jakehokoli procesu
do pameti, aby mohl pokracovat v behu dale, muze mu to trvat
opravdu velmi velmi dlouho a tim by mohly vznikat i zmimnovane
timeouty.
* Je obecne znamo, ze v Linuxu jsou (nebo byly - o 2.4.x nemam zpravy)
dost spatne algoritmy pro praci se swapem. Mozna je to jeden z duvodu,
proc se nikdo dlouho neznazil prekrocit 256 MB na jeden swap (to ale jen
spekuluji). Na malych a malo zatizenych systemech to problem neni.
Dokonce se muze nekomu i zdat, ze je v tomto smeru Linux rychlejsi nez
mnoho jinych systemu, protoze prace s kratkymi linearnimi seznamy
je efektivni. Jenze u stroju s velkym a skutecne pouzivanym swapem
(viz top) je swap vysoce fragmentovan a problem je na svete. Prestava
byt zajimavy absolutni cas jedne primitivni operace, ale mnohem
dulezitejsi je nyni slozitost a horsi nez linearni uz snad ani byt
nemuze.
PS: Je mi docela smutno, ze sve pochybnosti tu zatim vyjadril jen
jeden clovek.
--
Rudolf Cejka (cejkar na dcse.fee.vutbr.cz; http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66 Brno, Czech Republic
Další informace o konferenci Linux