网口内核转发性能调优-linux设备网口性能调试

使用内核转发时是非常消耗cpu中断的因此,内核转发的性能往往是比较低的这个时候我们就要通过对网卡相关参数的调整来达到提高网卡性能的目的

起初我们发现两个网口在做内核转发时的转发效率极低在大包(1518)吞吐时只有30%,且网口有大量errors和overruns产生测试方法如下:

brctl addbr br2
brctl addif br2 eth4 eth5
ifconfig br2 192.168.3.1 netmask 255.255.255.0 broadcast 192.168.3.255 up

执行:

ethtool -S eth4
ethtool -S eth5

查看详细报错均为:rx_resource_errors(此项报错为cpu性能达到瓶颈时产生)。

观察网口中断发现中断均在cpu 0核上触发。已知该cpu有四个核心,0,1为小核主频相对较低,2,3为大核主频稍高,我们考虑将网口中断重新绑定至cpu大核上。

echo 8   > /proc/irq/89/smp_affinity  
echo 8   > /proc/irq/90/smp_affinity   
echo 8   > /proc/irq/91/smp_affinity  
echo 8   > /proc/irq/92/smp_affinity  
echo 4   > /proc/irq/93/smp_affinity  
echo 4   > /proc/irq/94/smp_affinity  
echo 4   > /proc/irq/95/smp_affinity 
echo 4   > /proc/irq/96/smp_affinity

以上为网口中断绑核操作,请参考:绑定中断到CPU_smp_affinity_list_放学有种别跑、的博客-CSDN博客

这样以1518包长测试时速率有所提高,但将速率提升至50%时发现流量仪少量丢包,网口RX error还是存在。

我们查看网卡队列发现,两个网RX队列较小只有512TX队列为8192 。

此时我们调整网卡RX队列做尝试

ethtool -G eth4 rx 4096
ethtool -G eth5 rx 4096

至此速率提升至65%,在升高时会发现流量仪检测到丢包,此时网口errors已经消失,但是性能还是没有达到预期,我们考虑将TX队列长度和RX队列长度调整一致

ethtool -G eth4 rx 4096 tx 4096
ethtool -G eth5 rx 4096 tx 4096

至此,1518吞吐量达到线速完美解决性能差问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值