How to obtain which interrupts cause system to hang?

Ian Smith smithi at nimnet.asn.au
Sun Oct 10 05:56:02 UTC 2010


In freebsd-questions Digest, Vol 331, Issue 13, Message: 8
On Sat, 9 Oct 2010 20:05:48 +0300 ??????? ??????? <kes-kes at yandex.ru> wrote:
 > Content-Type: text/plain; charset=windows-1251
                                     ^^^^^^^^^^^^
Hi KES, long time ..

 > #systat -v
 >     1 users    Load  0.74  0.71  0.55                  Oct  9 19:53
[..]
 > Proc:                                                            Interrupts
 >   r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt     24 cow    2008 total
 >   2       3  39       23k   67  563    9 1710   47     15 zfod      9 ata0 irq14
 >                                                           ozfod       nfe0 irq23
 > 23.1%Sys  50.8%Intr  1.3%User  0.0%Nice 24.8%Idle        %ozfod  1999 cpu0: time
 > |    |    |    |    |    |    |    |    |    |    |       daefr
 > ============+++++++++++++++++++++++++>                  6 prcfr

Yes, system and esp. interrupt time is heavy .. 23k context switches!?

In addition to b. f.'s good advice .. as you later said, 2000 Hz slicing 
_should_ be ok, unless a slow CPU?  Or perhaps a fast CPU throttled back 
too far .. powerd?  Check sysctl dev.cpu.0.freq while this is happening.

Disable p4tcc if it's a modern CPU; that usually hurts more than helps. 
Disable polling if you're using that .. you haven't provided much info, 
like is this with any network load, despite nfe0 showing no interrupts?

 > #top
 > last pid: 24571;  load averages:  0.10,  0.49,  0.50    up 0+19:15:01  19:56:36
 > 42 processes:  3 running, 39 sleeping
 > CPU:  0.7% user,  0.0% nice, 21.0% system, 36.3% interrupt, 41.9% idle
 > Mem: 305M Active, 767M Inact, 252M Wired, 468K Cache, 213M Buf, 650M Free
 > Swap: 4063M Total, 4063M Free
 > 
 >   PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
 >  1054 bind          4   4    0   134M   109M kqread   0:51  0.00% named
 >   986 root          1  44    0  5692K  1408K RUN      0:50  0.00% syslogd
 >  1162 clamav        1   4    0  4616K  1468K accept   0:46  0.00% smtp-gated
 > 11731 clamav        1  20    0 27948K  9728K pause    0:03  0.00% freshclam
 > 11791 root          1 -58    0  7848K  4120K bpf      0:02  0.00% arpwatch
 > 13208 root          1  44    0 10700K  4144K select   0:01  0.00% sendmail
 > 13298 root          1   8    0  6748K  1440K nanslp   0:00  0.00% cron
 > 12802 root          1  44    0 22880K  4004K select   0:00  0.00% sshd
 > 
 > 
 > How to obtain what nasty happen, which process take 36-50% of CPU
 > resource?

Try 'top -S'. It's almost certainly system process[es], not shown above.

cheers, Ian


More information about the freebsd-questions mailing list