ksoftirqd在多核环境下,满负荷情况下是否会被调度
我这边在做路由器性能测试发现4核环境下,满负荷时,所有softirq几乎都由某一个核处理。
top下看,sirq占25%,idle占75%,只有那个核的ksoftirqd在工作
请问内核不会自己调度么?还是与关闭了内核抢占有关? 软中断执行的核由硬中断决定,只有一个核处理软中断,应说明网卡只有单队列,只有一个中断。 回复 2# humjb_1983
但是我是两个网卡双向打流。怎么也会有两个中断把 humjb_1983 发表于 2015-01-23 13:59 static/image/common/back.gif
软中断执行的核由硬中断决定,只有一个核处理软中断,应说明网卡只有单队列,只有一个中断。
如果进入轮询状态,没有中断产生,那么软中断就只会在一个核上? xinghuo456 发表于 2015-01-23 14:08 static/image/common/back.gif
回复 2# humjb_1983
确认两个网口都有流量?
cat /proc/interrupts看看呢? 回复 5# humjb_1983
都有。我用smartbits打的流量
47: 13250 12973 13249 13241 PCI-MSI-edge eth0
48: 5348 5077 5339 5340 PCI-MSI-edge eth1
49: 4 11 5 7 PCI-MSI-edge eth2
50: 8 9 2 8 PCI-MSI-edge eth3
51: 7 7 8 5 PCI-MSI-edge eth4
52: 1 14 9 3 PCI-MSI-edge eth5
eth0和eth1 对打
top的信息:
Mem: 58484K used, 842756K free, 0K shrd, 13692K buff, 14076K cached
CPU:1.8% usr1.2% sys0.0% nic 71.9% idle0.0% io0.0% irq 25.0% sirq
Load average: 1.13 0.48 0.18 2/83 9705
PIDPPID USER STAT VSZ %VSZ CPU %CPU COMMAND
13 2 root RW 00.0 2 24.3 / # cat /proc/softirqs
CPU0 CPU1 CPU2 CPU3
HI: 0 0 0 0
TIMER: 11516 8043 15666 6553
NET_TX: 33 9 6 1
NET_RX: 22257 28621 34282 23626
BLOCK: 222 5209 73 1741
BLOCK_IOPOLL: 0 0 0 0
TASKLET: 0 1 0 0
SCHED: 8726 3320 2551 3277
HRTIMER: 0 1 2 0
RCU: 13151 5565 8885 4495
/ #
/ #
/ # cat /proc/softirqs
CPU0 CPU1 CPU2 CPU3
HI: 0 0 0 0
TIMER: 11666 8182 16167 6637
NET_TX: 34 9 6 1
NET_RX: 22268 28625 35607 23629
BLOCK: 222 5209 73 1741
BLOCK_IOPOLL: 0 0 0 0
TASKLET: 0 1 0 0
SCHED: 8828 3404 2590 3333
HRTIMER: 0 1 2 0
RCU: 13239 5644 8977 4550
只有cpu2的softirq变化大,其余的基本都是个位数的变化 top命令执行后,按1,看看每个cpu的占用情况。 回复 8# humjb_1983
我这是串口连的,按1无效,不知为何-。- xinghuo456 发表于 2015-01-23 14:43 static/image/common/back.gif
回复 8# humjb_1983
# mpstat -P ALL 2
这个试试呢。
页:
[1]
2