在多核系统上网络数据转发实验和一点思考

2020-06-01 00:00:00 代码 队列 负载 多核 中断

小弟刚刚鸟枪换小炮。得到一台Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz + PCI-E 4X 2.5GB的机器,以前看大家讨论多核,IRQ中断亲和的问题,心里头就发痒,现在终于有机会测试了!!!反复做了些测试,有一些值得思考的地方,将整个测试过程发上来(不包括性能改进方面的内容),与大家一起讨论(有点长,适合有耐心的TX看):

一些个人结论性的东西可能有误,希望大家指点!!!


一、测试环境:

发包机(PC_A) -------- (eth1)Linux(eth2)---------收包机(PC_B)

内核版本:2.6.12
网卡驱动:Intel e1000e[Intel现在把pci-e的千兆网卡单独拿出来了。整了个e1000e],NAPI模式;
发包工具:bwtest
Linux配置:网桥 + Netfilter;
数据包是单向发送64bytes小包。即PC_B不发包。

二、不开启IRQ中断均衡;
内核编译中,不开启此选项。

  1. Cpu(s):   0.0%% user,   0.5%% system,   0.0%% nice,  50.3%% idle
  2. Cpu0  :   1.0%% user,   0.0%% system,   0.0%% nice,   1.0%% idle
  3. Cpu1  :   0.0%% user,   0.0%% system,   0.0%% nice, 100.0%% idle
  4. Cpu(s):   0.0%% user,   0.0%% system,   0.0%% nice,  50.8%% idle
  5. Cpu0  :   0.0%% user,   0.0%% system,   0.0%% nice,   1.0%% idle
  6. Cpu1  :   0.0%% user,   0.0%% system,   0.0%% nice, 100.0%% idle
  7. Cpu(s):   0.5%% user,   0.0%% system,   0.0%% nice,  50.8%% idle
  8. Cpu0  :   0.0%% user,   1.0%% system,   0.0%% nice,   2.0%% idle
  9. Cpu1  :   0.0%% user,   0.0%% system,   0.0%% nice, 100.0%% idle

相关文章