Pomala odezva
Zdenek Pytela
letty na mrakoplas.phil.muni.cz
Středa Březen 4 12:27:25 CET 1998
Pavel Kankovsky pise:
:> strace -f -p vypisuje u telnetove seance mnohem min udaju, nejake
:> tam podle me uplne chybi, pritom by prepinac -f mel zajistit sledovani
:> potomku. Pri prihlasovani na konzolu je ve vypisu krome dvojiho nacitani
:
:to je zvlastni... da se povaha chybejicich udaju nejak lepe popsat (jsem
:ochoten poskytnout soukromou konzultaci zdarma :> )
passwd se otvira trikrat navic, to ostatni jsou snad (?) drobne
detaily. (Ale konzultace v jakemkoliv smeru vitam.)
:> Pri trasovani pomoci strace se na obrazovku nejpomaleji vypisuje obsah
:> passwd a shadow, ale kolik casu tim doopravdy obvykle travi nevim, ani jak
:> to zjistovat jinak nez odhadem.
:
:strace na to ma parametry:
:
:-r -- print relative timestamp, -t -- absolute timestamp, -tt -- with usecs
:-T -- print time spent in each syscall
-T ukaze u vetsiny volani spotrebovany cas mensi nez 0.0001.
Zajimavy je taky parametr -c:
Vyber z vypisu na konzole:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
48.31 0.593345 8476 70 34 wait4
6.97 0.085543 117 731 sigaction
6.82 0.083777 145 576 sigprocmask
5.58 0.068515 267 257 read
4.22 0.051877 2730 19 execve
3.68 0.045256 1257 36 fork
3.48 0.042684 236 181 22 open
2.78 0.034184 64 534 290 close
2.72 0.033457 108 311 mmap
1.28 0.015770 219 72 22 stat
0.91 0.011231 173 65 18 lseek
0.82 0.010062 3354 3 send
0.77 0.009410 118 80 3 fcntl
0.20 0.002481 827 3 1 connect
0.02 0.000282 282 1 1 access
0.01 0.000067 67 1 1 getpeername
------ ----------- ----------- --------- --------- ----------------
100.00 1.228154 4131 394 total
U telnetove seance je to dost podobne, pocet chyb uplne stejny. Jestli
volani zabrala dohromady 1.2 sekundy, nevim, co delal cely zbytek doby a
k cemu jsou tam ta cekani.
Na zdravem stroji s lepsim hardwarem je celkovy cas polovicni - 0.6, neni
tam volani getpeername a fchdir.
Zmena shellu nepomuze, ale tim se snad hledani omezuje na cas mezi
dvema forky getty->login a login->bash; ve vypisu strace je to jenom prvnich
900 radku. Kdyby mel nekdo lepsi dokumentaci k loginu nez je login.c a dalsi
soubory z util-linux, byl bych za ni vdecny. I za symbolicky popis toho, co
se deje pri prihlasovani, kdy a proc se vola jaka funkce z pam atd.
Behem prihlasovani tcpdump nezachytil ani jeden paket bezici mimo
sit. Problemy s DNS jsou sice stale mozne, ale v tomto pripade to na ne
nevypada.
Nameserver 127.0.0.1 se zaradil do dlouhe rady toho, co nepomaha.
Bohuzel nemuzu jenom tak prebootovat nebo zavest jednouzivatelsky rezim nebo
zrusit tisic uzivatelu v passwd, ale pokusim se o to.
--
--Zdenek <pytela na phil.muni.cz>
Další informace o konferenci Linux