免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5130 | 回复: 13
打印 上一主题 下一主题

[求助]谁能帮我解释一下e1000驱动性能奇怪现象,我给他搓澡! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-14 10:19 |只看该作者 |倒序浏览
我的测试平台xeon双核1.8G,2G内存,2.6.18.6内核,7.4.27 e1000驱动

64字节小包,UDP双向,测试路由转发。

用48%流量打时(发包数14,285,714)只丢6%,但是用46%流量(发包数13,690,476)打时却要丢42%,用的是napi的驱动,用nonapi驱动没有这个问题。

我设置InterruptThrottleRate参数,固定一个每秒中断次数还是有这个现象,搞不清楚是哪里引起这个现象的?

谁帮我解释一下我给他搓澡

论坛徽章:
0
2 [报告]
发表于 2007-03-14 13:24 |只看该作者
你看看是不是因为napi自身处理方式引起的问题。

比如,napi在接到第一个rx interrupt 会用netif_rx_schedule()把net_dev挂到poll list上并关闭中断,可此时如果你的buffer不够大,那在softirq处理ingress packet时,也许已经覆盖掉N多个packet了(如果是循环使用的话)。具体的驱动没看过,不知说的对否?

BTW,如果说对了,下次从你那买盘能不能再便宜点?

BTW2,你那要人不?呵呵

论坛徽章:
0
3 [报告]
发表于 2007-03-14 14:20 |只看该作者
补一个,将增加net_dev->weight,最多为300试试

论坛徽章:
0
4 [报告]
发表于 2007-03-14 14:27 |只看该作者
原帖由 12013396 于 2007-3-14 13:24 发表于 2楼  
你看看是不是因为napi自身处理方式引起的问题。

比如,napi在接到第一个rx interrupt 会用netif_rx_schedule()把net_dev挂到poll list上并关闭中断,可此时如果你的buffer不够大,那在softirq处理ingress pa ...



46%流量要比48%的流量少,buffer应该够用了,并且我每次都是测完一次一个流量,再重新测试另一个流量,不会有没有处理完上次数据的问题。

驱动中每次中断处理weight为64个包,我试过大一点300或者小一点性能都不如64。

今天在看RADV、ITR这几个中断超时寄存器,不知道是不是问题出在这里,有做过的朋友给指点一下。

哈哈,兄弟还从我这里buy过盘,下次报上名来一定给你便宜,要是能帮我解决这个问题免费给你供应。

[ 本帖最后由 bekars 于 2007-3-14 14:30 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-03-14 16:00 |只看该作者
我想,你是不是应该看看是哪些包被drop了,有什么相似的地方没有,或者丢的是否存在规律

论坛徽章:
0
6 [报告]
发表于 2007-03-14 17:57 |只看该作者
原帖由 12013396 于 2007-3-14 16:00 发表于 5楼  
我想,你是不是应该看看是哪些包被drop了,有什么相似的地方没有,或者丢的是否存在规律



smartbit 6000测试仪,发的包都是一样的,总是到减到一定的流量丢包突然多了,我现在在网卡转发包的时候检查一下网卡的状态,看看哪里出问题。

论坛徽章:
0
7 [报告]
发表于 2007-03-14 21:41 |只看该作者
我的意思是,找一下变化的规律,比如,是固定发了多少个包后出现?还是在,比如流量大小什么的发生变化后出现?流量恒定时,是否有变化?

再有,你确定丢包是驱动丢的吗?与硬件无关(这个有点弱,但我还是明确的好),在驱动里加几个hook,将驱动收包操作的过程分解了,看看丢包具体在哪发生的。

另外,你是不是看看内存的情况,特别是发生丢包前后的内存情况,看与内存有关系吗?(e,g:skb)

论坛徽章:
0
8 [报告]
发表于 2007-03-15 09:57 |只看该作者

回复 #7 12013396 的帖子

我的意思是,找一下变化的规律,比如,是固定发了多少个包后出现?还是在,比如流量大小什么的发生变化后出现?流量恒定时,是否有变化?

在打48%流量时丢6%,而46%流量丢42%,现在的规律就是总是降低到一个流量时收包数突然降低了,收包数应该是一个稳定的值,在48%收包数是13,339,795pps,而到46%收包数是7,940,065,差不多下降了一半。流量恒定时每次结果都一样,不存在不稳定因素。


再有,你确定丢包是驱动丢的吗?与硬件无关(这个有点弱,但我还是明确的好),在驱动里加几个hook,将驱动收包操作的过程分解了,看看丢包具体在哪发生的。

目前硬件只有一台,没法做对比测试,有可能存在问题,但是概率比较小。加hook的方法会影响转发流程,测试性能会降低,现象可能就不准确了,我现在在驱动中加入一些计数器,对比不同流量的相关数值有什么变化。


另外,你是不是看看内存的情况,特别是发生丢包前后的内存情况,看与内存有关系吗?(e,g:skb)

内存2G,够大,重启之后直接测试,和内存关系不大。现在256以下字节收包做了一次copybreak,48%流量要比46%流量对内存的操作更多一些(因为收到的包多),所以感觉和内存关系不大。

论坛徽章:
0
9 [报告]
发表于 2007-03-15 17:38 |只看该作者
有结果了吗? 把统计信息贴贴呀

等着看呢

论坛徽章:
0
10 [报告]
发表于 2007-03-22 15:07 |只看该作者
又做了测试发现在不同中断号的两个网口如中断号16和17的网口有上面的问题,而在相同中断号的网口正常,随流量减少,丢包数也在减少。

还发现一个奇怪现象,在nonapi的情况下比有napi的性能要高,还没有搞清楚怎么回事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP