Hodnota load v Linuxu (Re: Redhat v ceske nemilosti?)

Cejka Rudolf cejkar na dcse.fee.vutbr.cz
Neděle Duben 22 18:13:36 CEST 2001


Jan Kasprzak <kas na informatics.muni.cz> wrote:
>         Zrovna jsem na Solarisu zkusil dd if=/dev/dsk/.... | cat >/dev/null,
> load skutecne stoupl pres 1, i kdyz CPU bylo z 80% idle.

Ja jsem netvrdil, ze vypocty jsou presne - to jsem musel cist
od jinych. Pripominku "podle plotu" jsem sice myslel puvodne
trochu jinak - ale sem se kupodivu hodi. Ani load a ani procentualni
casy se obycejne nepocitaji exaktne, ale jen priblizne. A jsou
proste situace, kdy priblizne vypocty selhavaji.

Aha, takze uz ne nfs, ale dd. Jenze /dev/null je /dev/null - tohle je
k nicemu. Prinosnejsi by bylo zkusit nekonecny sendfile vs. write
do socketu, ktery druha strana nestiha cist nebo prestala cist uplne.
Pokud load klesne, je to dobre. O tohle tady jde. Nevim, nac sem
stale tahat jine veci a zdrzovat se jimi.

Load se samozrejme nepocita permanentne, ale jen jednou za cas.
Kdyz jsem se dival do FreeBSD, krome SIDL a SRUN tam pocitaji za
nejake podminky i SSLEEP. Ackoli te podmince semanticky nerozumim,
odhadoval bych, ze se tam pricitaji procesy s minimalnim nebo ukoncenym
nebo specialnim cekanim (ale non-interrupt to neni). Kdyby mel Solaris
shodnou implementaci s FreeBSD a muj temny odhad by byl spravny,
vysoky load u dd do /dev/null by se tim vysvetlil. Tuto situaci bych
jeste bral - pripada mi to jako podobny problem, kdyz se vzorkuje
audio signal na digitalni vzorky. Jenze v pripade, ktery jsem uvadel
s paskou, to teda rozhodne neberu. A je mozne, ze stejna situace je
i v sitovem kodu. Load nabehne o jednicku vys a pocitac pritom jen
ceka. To vam nepripada prinejmensim zvlastni? K cemu potom takove
cislo je? Nepochopil jsem ani poznamku pod prikladem - skoro jako
kdyby ja o voze a druhy o koze - v mem priklade nebyly ani disk ani
pametova sbernice nijak vyuzivany.  A samozrejmosti toho typu, ze
je potreba si dat pozor na obsazeni pameti, to mi bylo uplne trapne psat.

Zda se, ze nektere veci jsem nenapsal dostatecne vyrazne, takze
jeste jednou: At si treba Linux pocita load jak chce. Ale kdyz ho
nejak pocita, at je k tomu taky odpovidajici dokumentace. Nez
chybna, to radsi zadna.

Nase servery jsou kupodivu dost podobne: Take jen IDE a take jen
256 MB RAM, akorat mame dual 2 x 450 MHz. Zadna vysoka zatez nam
asi nehrozi (ale kdo vi - maji obrovske problemy s master-site a tak
lide obcas zabloudi i k nam). Muzu tedy poslouzit jen temito cisly
(65 lidi na ftp, sitovy tok okolo 18 Mb/s, zadne sendfile, zadne
zero-copy; pochopeni udaju o pameti by vyzadovalo trochu hlubsi
studium vm-systemu):

last pid: 95464;  load averages:  0.26,  0.23,  0.25   up 38+21:58:27  18:04:32
97 processes:  1 running, 93 sleeping, 2 stopped, 1 zombie
CPU states:  0.5% user,  0.0% nice,  8.9% system,  1.6% interrupt, 89.0% idle
Mem: 112M Active, 62M Inact, 63M Wired, 11M Cache, 35M Buf, 660K Free
Swap: 500M Total, 2556K Used, 497M Free

--

Jen bokem, nechce se mi kvuli tomu psat zvlastni mail:
Nad zminkou o standardech jsem se opravdu velmi pobavil.
Nebudu to rozvadet, ale mozna by bylo lepsi zacit u dulezitejsich
veci. Staci se zacist do SUSv2 a neco se rozhodne najde. Zkusim
strelit od boku - zatim jsem se napriklad ve waitpid() nepotkal
s WCONTINUED ani ve FreeBSD, ani v Linuxu. Solaris WCONTINUED zna.
Pokud jsem se nahodou trefil, preji prijemne chvilky ;-) Na load
urcite zadne standardy nejsou (a diskuzemi na toto tema se neminim
ani zaobirat - kdo tuto problematiku nechape, jeho smula), ale
implementace a dokumentace si v Linuxu vzajemne odporuji. Puvodne
jsem si myslel, ze jsme s p. Ohnesborgem nasli zbran pro argumentaci
proc je problem - a koukam, ze se touto zbrani nakonec sam branim.
Tohle uz je opravdu mimo misu.

-- 
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