数据包转发时的CPU使用率

时间:2016-09-16 21:36:15

标签: networking linux-kernel cpu-usage

我正在尝试测量双核ARM Cortex A9处理器上的CPU使用率来对其进行基准测试。它将用于路由器。我启用了IP转发,我正在运行iperf测试以及使用top监视CPU使用情况。我对解释 top 的结果感到有些困惑。

Cpu0  :  0.0%us,  0.5%sy,  0.0%ni, 59.1%id,  0.0%wa,  0.0%hi, 40.5%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1)在数据包转发期间,为什么内核使用率为0.5%,而softirq百分比为40.5%?那么有效的CPU使用率是(40.5 + 0.5)%?

2)为什么第二个CPU完全空闲?

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 这意味着进程上下文内核使用率为0.5%,即非 内核中的IRQ / Softirq使用率为0.5%。 40.5%的人很清楚 说。正如您所说,有效的CPU使用率
  2. 可能是因为你要么 a)只有一个硬的irq为您的 网络设备,它与核心0或
    相关联 b)即使您有多个IRQ线,所有IRQ都与核0相关联 多队列
    c)您的基准测试具有单个TCP / UDP流,因此散列正在进行 即使您有多个队列/核心,核心0上的所有内容。