Networking 数据包转发时的CPU使用率

Networking 数据包转发时的CPU使用率,networking,linux-kernel,cpu-usage,Networking,Linux Kernel,Cpu Usage,我试图测量双核ARM Cortex A9处理器上的CPU使用情况,以对it进行基准测试。它将被用作路由器。我启用了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.

我试图测量双核ARM Cortex A9处理器上的CPU使用情况,以对it进行基准测试。它将被用作路由器。我启用了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完全空闲

谢谢

  • 这意味着进程上下文内核使用率为0.5%,即非 内核中的IRQ/Softirq使用率为0.5%。40.5%为软质IRQ,如您所知 说。有效的CPU使用率正如您所说
  • 可能是因为要么你
    a) 只有一个硬的irq为您的 连接到核心0或
    b) 所有IRQ都绑定到核心0,即使您有多个IRQ行/有 多队列
    c) 您的基准测试只有一个TCP/UDP流,因此哈希是 核心0上的所有内容,即使您有多个队列/核心