测试环境示意图:
tc规则应用在63上,63同时将10.10.10.4/5/6通过NAT与172.16.101.54/55/56互转。
62上安装http_load
54上安装nginx
测试结果:
所有的测试结果都是在62上分别使用http_load发送连接到54。一次发起3个http_load
1. 环境:
eth1 | ifb1 | ingress |
无 | 无 | 无 |
结果:
测试过程中将eth1的中断绑到cpu1上,eth2的中断绑到cpu2上。
2. 环境:
eth1 | ifb1 | ingress |
无 | 无 | 有 |
结果:
3. 环境:
eth1 | ifb1 | ingress |
有 | 有 | 有 |
3. 环境:
eth1 | ifb1 | ingress |
有 | 无 | 有 |
4. 环境:
eth1 | ifb1 | ingress |
有 | 无 | 无 |
大部分时候是下图情况,但有时候CPU2会突然到67%左右。
5. 环境:
eth1 | ifb1 | ingress |
无 | 有 | 有 |
结论:
1. 在测试中发现,普通tc过滤规则对cpu的si影响比较小,对cpu性能影响大的是将进来的数据镜像到虚拟网卡的操作。
2. 当把进来的数据包镜像到虚拟网卡时,每秒连接两万cpu的si能达到80%。