How to obtain which interrupts cause system to hang?

Коньков Евгений kes-kes at yandex.ru
Sun Oct 10 07:50:44 UTC 2010


Здравствуйте, Ian.

Вы писали 10 октября 2010 г., 8:55:58:

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

 >> #systat -v
 >>     1 users    Load  0.74  0.71  0.55                  Oct  9 19:53
IS> [..]
 >> 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

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

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

IS> Disable p4tcc if it's a modern CPU; that usually hurts more than helps.
IS> Disable polling if you're using that .. you haven't provided much info,
IS> like is this with any network load, despite nfe0 showing no interrupts?
Polling is ON. Traffice is about 60Mbit/s routed from nfe0 to vlan4 on rl0
when interrupts are happen traffic slow down to 25-30Mbit/s.
There is no p4tcc option in KERNEL config file.
disable/enable polling does not help. situation still same.

sysctl -a | grep freq
kern.acct_chkfreq: 15
kern.timecounter.tc.i8254.frequency: 1193182
kern.timecounter.tc.ACPI-fast.frequency: 3579545
kern.timecounter.tc.TSC.frequency: 1809280975
net.inet.sctp.sack_freq: 2
debug.cpufreq.verbose: 0
debug.cpufreq.lowest: 0
machdep.acpi_timer_freq: 3579545
machdep.tsc_freq: 1809280975
machdep.i8254_freq: 1193182



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

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




-- 
С уважением,
 Коньков                          mailto:kes-kes at yandex.ru



More information about the freebsd-questions mailing list