[linux] Re: cpu waiting process opsporen.

Daniel von Asmuth asmuth op bakunin.xs4all.nl
Ma Feb 8 22:21:29 CET 2010


On Sun, Feb 07, 2010 at 06:17:40PM +0100, Robin van Leeuwen wrote:
> Ok,
> Maar met 'ps lax' kom ik er achter >welke< processen staan te wachten, maar
> niet welke
> processen hiervoor de meeste CPU tijd in beslag nemen. Zo staat een
> /bin/bash bijvoorbeeld
> bijna constant op IO te wachten, maar dit neemt geen CPU tijd in beslag. In
> top komt
> staat de 'wa' dan gewoon op 1 of 2 procent.
> 
> Hoe kom ik er nu achter als in top mijn 'wa' naar 80% schiet welk process
> dit is?
> in 'ps lax' krijg ik op zo'n moment bijvoorbeeld wel 5 a 6 processen in
> 'wait' te zien,
> maar ik weet nog steeds niet welk proces nu echt verantwoordelijk is voor
> het grootste
> deel van die 80%.

Zoals gezegd is het niet erg zinvol om God te beschuldigen van het doen
ronddraaien van de wijzers van de klok.... en ook al heb je maar één
CPU c.q. core, toch is Linux in staat om die processor 100 % van de tijd
aan één rekenklus te laten besteden en tegelijk op 1001 verschillende
gebeurtenissen te laten wachten. Wachten kost geen CPU-tijd, met
uitzondering van spin-locks in de Linux kernel.

> Nu kan ik wel raden dat als er 5 bash processen op wait staan en een 6e,
> 'kvm' op
> wait staat (ik noem maar even wat) en mijn top-wa staat op 90% het
> waarschijnlijk het
> kvm process is wat aan mijn CPU vreet. Maar is hier een utility voor, want
> het wordt al lastiger om een schuldige CPU-hog aan te wijzen als er een
> 'kvm' , 'mysqld', 'stfp-
> erver', 'jsvc tomcat' en 'smbd' op wait staan...

De computer bestaat niet alleen uit de CPU. De GPU (video kaart) is
alleen voor werkstations van belang. Relevanter is de belasting van het
systeem door I/O naar disks, tapes en netwerk interfaces. Als het OS 50 % 
van de tijd op disk I/O wacht, dan is de processor gedwongen tot
leidzaam wachten terwijl het betroffen randapparaat zich uit de naad
werkt. 

Met een tool als sar of iostat wordt wachttijd weergegeven als
percentage van de tijd dat er 1 of meer opdrachten voor een randapparaat
in de queue te wachten stonden. Dit is niet aan afzonderlijke processen
toe te rekenen.

Lees ook het volgende artikel over 'psacct':
http://beginlinux.com/blog/2010/01/monitoring-user-activity-with-psacct-or-acct/
of anders: http://www.linuxjournal.com/article/6144

Aangezien verstreken seconden niet zoveel zeggen, kun je beter naar het
aantal system calls per seconde kijken en het aantal gelezen of
geschreven bytes per seconde. 

Om system calls te monitoren kun je LAuS gebruiken, zie:
http://ftp.suse.com/pub/projects/security/laus/laus/doc/LAuS-Design.pdf

Met vriendelijke groet,



Daniel von Asmuth.

-- 
		/----------------------------------\
		| overlijden schaadt de gezondheid |
		| het leidt tot stoppen met roken  |
		\----------------------------------/		



More information about the Linux mailing list