急急急求助,请教驱动高手如何提高e1000驱动转发性能!

[复制链接]
查看11 | 回复9 | 2021-1-27 06:59:33 | 显示全部楼层 |阅读模式
我现在在优化e1000的驱动,我用的硬件平台:
CPU:Intel(R)Xeon(R)CPU1.86GHz*2
内存:2G
网卡:82571EB
软件用的2.6.18.6内核,e1000-7.3.15驱动
路由转发的性能:
Name/Framesize64128256512102412801518
Total23.429687537.351562565.96875100100100100
AGroup23.429687537.351562565.96875100100100100
在64字节100%流量的时候可以通过40%,但是最后的结果却是23%,希望可以把64字节小包性能提高到30%以上,试过其他版本驱动,性能相差不大,驱动源码没有找到提升性能的修改方法(感觉intel的驱动考虑的比较周全)。
请教大侠,为什么100%流量的时候可以通过40%,但是最后的结果却是23%?如何优化才能达到更高的性能?谢谢!

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
1:以NAPI方式编译驱动
2:修改驱动的输入参数
Intel的千兆网卡驱动(e1000.ko)加载的时候可以加上几个参数,如下:
insmode1000.ko=
具体修改那些参数,网上有参数的说明intel网站有详细的说明
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
主要是中断次数延迟等
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
将NAPI编译进内核,“为什么100%流量的时候可以通过40%“,那么在驱动内统计接收的数据包,在高于某个阀值的时候,切换到非轮询模式,低于的时候切换到中断模式,估计可以提高一些的。
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
slone(slone)
在高于某个阀值的时候,切换到非轮询模式,低于的时候切换到中断模式,估计可以提高一些的。

你这样实现过吗?效果如何?
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
本来就不是轮询吧
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
偶没有做过,但偶看过rtl8139_rx的驱动:rtl8139_pollrtl8139_rx这两个函数里就有具体的用法。

回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
自己顶
回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
1,可以使用NAPI方式试一下.
2,你的cpu是2个,在大流量时会出现负载不均衡,表现为其中一个cpusystem占到100%而另一个cpusystem占用比较小,可以通过中断亲和来解决这个问题.即将网卡中断号与cpu进行绑定.
具体可以参考:
http://blog.chinaunix.net/u/6593/showart_240366.html
http://blog.chinaunix.net/u/6593/showart_240361.html
http://unit.xjtu.edu.cn/xb/zrb/quanw/200402/200404.pdf

回复

使用道具 举报

千问 | 2021-1-27 06:59:33 | 显示全部楼层
同意楼上。不知道你打开DMA了没有?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行