--
If you cut off my head, what would I say? Me and my head, or me and my body?
Może po prostu nic Ci nie czeka? :>
> ale przydalaby sie jakas prosta
> i szybka metoda stwierdzenia, na co wlasciwie proces czeka.
WCHAN COMMAND
32833d4edbc /services/apache/bin/httpd
No to już wiesz, na co proces czeka. :>
p.
--
http://freedns.sgh.waw.pl/ -- bezpłatny DNS.
http://nerdquiz.sgh.waw.pl/ -- polska wersja quizu dla nerdów.
http://42.pl/u/ -- skracacz URL-i.
To bym mial load 41.
Opowiem sobie - czesciowo - sam. Kolumne 'wchan' trzeba podac
explicite, przez 'ps -eo wchan,comm'. Oczywiscie...
>> ale przydalaby sie jakas prosta
>> i szybka metoda stwierdzenia, na co wlasciwie proces czeka.
>
> WCHAN COMMAND
> 32833d4edbc /services/apache/bin/httpd
>
> No to już wiesz, na co proces czeka. :>
... oczywiscie tego typu numerek nie mowi mi nic, w przeciwienstwie
do 'WCHAN' produkowanego przez fribzdowe 'ps axl'. Da sie ten
numerek jakos latwo zdekodowac?
Oh. Hehe. Dokładnie to zrobiłem, żeby popatrzeć. I nie zauważyłem,
że w zwykłym ps -ef są same znaki zapytania. :)
>> WCHAN COMMAND
>> 32833d4edbc /services/apache/bin/httpd
>> No to już wiesz, na co proces czeka. :>
> ... oczywiscie tego typu numerek nie mowi mi nic, w przeciwienstwie
> do 'WCHAN' produkowanego przez fribzdowe 'ps axl'. Da sie ten
> numerek jakos latwo zdekodowac?
Chyba nie. We FreeBSD mają dodatkowe pole, w którym trzymają te
lockf, wait itd.
Na Solarisie jest tylko adres zmiennej, która blokuje thread.
> Ponure Zacietrzewienie <trasz...@buziaczek.pl> wrote:
>> Opowiem sobie - czesciowo - sam. Kolumne 'wchan' trzeba podac
>> explicite, przez 'ps -eo wchan,comm'. Oczywiscie...
>
> Oh. Hehe. Dokładnie to zrobiłem, żeby popatrzeć. I nie zauważyłem,
> że w zwykłym ps -ef są same znaki zapytania. :)
>
>>> WCHAN COMMAND
>>> 32833d4edbc /services/apache/bin/httpd
>>> No to już wiesz, na co proces czeka. :>
>> ... oczywiscie tego typu numerek nie mowi mi nic, w przeciwienstwie
>> do 'WCHAN' produkowanego przez fribzdowe 'ps axl'. Da sie ten
>> numerek jakos latwo zdekodowac?
>
> Chyba nie. We FreeBSD mają dodatkowe pole, w którym trzymają te
> lockf, wait itd.
>
> Na Solarisie jest tylko adres zmiennej, która blokuje thread.
-bash-3.00# ps -Lelo pid,wchan,comm | grep uxwdog
100826 c7fff6b2 ./uxwdog
-bash-3.00# echo "::threadlist" | mdb -k | grep uxwdog
_c841b980_ c6814a68 c86ad5c0 uxwdog/1
(albo po prostu ::pgrep uxwdog)
-bash-3.00# mdb -k
Loading modules: [ unix krtld genunix specfs dtrace uppc scsi_vhci ufs ip
sctp arp usba fctl nca lofs zfs random sppp ptm cpc fcip nfs ]
> _c841b980_::threadlist -v
ADDR PROC LWP CLS PRI WCHAN
c841b980 c6814a68 c86ad5c0 1 59 c7fff6b2
PC: 0xfe833988 CMD:
./uxwdog -e -d /var/opt/mps/serverroot/admin-serv/config
stack pointer for thread c841b980: c8808df8
swtch+0x1f6()
cv_timedwait_sig+0x159()
cv_waituntil_sig+0x77()
poll_common+0x41e()
pollsys+0x7c()
sys_sysenter+0x19e()
czyli na pollsys() w tym przypadku.
--
Jakub Wartak
http://vnull.pcnet.com.pl/
No tak, threadlist. Miłe makro na Solarisie 10, na 9 nie jest
załadowane, a jakoś nie pomyślałem, żeby przejrzeć /usr/lib/adb. :)
Na Sol9 jest mniej wygodnie, bo trzeba adresu z wchan szukać ręcznie:
# echo "$<threadlist" | mdb -k | less
[...]
============== thread_id 3001513b7e0
0x30702fb38e9:
process args imaps
0x3001513b8f0: lwp procp wchan
307026558b8 30702fb3458 30089622612
0x3001513b818:
pc sp
cv_wait_sig+0x1702a102c64b01
str_cv_wait+0x2c(30089622612, 3a9be88f480, ffffffffffffffff, 0, ff112464,
ff196ed8)
strwaitq+0x23c(0, ffffffffffffffff, 0, 3a9be88f480, ffffffffffffffff,
2a102c65698)
kstrgetmsg+0xe50(1, 0, 2a102c657bb, 0, 10000010, 100)
sorecvmsg+0x178(1, 502, 0, 2a102c657a8, 0, 0)
sock_read+0x60(30014d68c90, 2a102c65970, 0, 30645d6f1a8, 0, 0)
read+0x2ac(46a, 30014d68c90, 5, ffffffffffffffff, 19000, ffbfecb4)
read32+0x38(0, 112740, 5, 0, 65730053, ff3f83bc)
syscall_trap32+0xa8(0, 112740, 5, 0, 65730053, ff3f83bc)
[...]
Eh, chyba w końcu się zmigruję na 10.