免费注册 查看新帖 |

Chinaunix

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

请教关于intel 82575EB 网卡性能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-22 21:19 |只看该作者 |倒序浏览
请问有谁用过intel 82575EB网卡,该卡使用igb驱动,支持MSI-X, 4-RX queues, 4-TX queues。我在一个4核的机器(linux kernel 2.6.25.15)上测试网桥转发包的性能,发现流量较小时,负载能比较均匀地分配到4个core上,但流量很大时,发现各个core的负载很不均匀(2个90%以上,2个不到10%),而且此时网卡丢包严重。另外,发现同等条件下使用MSI中断模式比MSI-X模式性能要好些,不知道是什么原因?是不是MSI-X模式下网卡的NAPI处理方式有问题?在MSI-X模式下,经top命令发现,处理硬中断占用的CPU随流量增大而增加。望大侠能指点一二,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-08-22 21:43 |只看该作者
四个核是怎么样共享内存的。。。MSI中断不是 往某个内存写入某个特定的值,而后产生相应的中断。会不会有的核控制的内存控制被写入了较多的中断信息呢?

论坛徽章:
0
3 [报告]
发表于 2008-08-23 16:48 |只看该作者
原帖由 catdoll 于 2008-8-22 21:19 发表
请问有谁用过intel 82575EB网卡,该卡使用igb驱动,支持MSI-X, 4-RX queues, 4-TX queues。我在一个4核的机器(linux kernel 2.6.25.15)上测试网桥转发包的性能,发现流量较小时,负载能比较均匀地分配到4个co ...




真巧啊,我最近正在这块做性能方面的工作,具体情况如下:

1. 4 rx queues + RSS

2. 4 tx queues

3. 9(4+4+1)MSI-X interrupt vectors

用smartbits测64字节双向ip forwarding性能,结果很震撼,记得以前CU这个版讨论过如何包转发达到40万pps,现在看这个值太低了。

当然,这是在Solaris上,但可以证明硬件是没有问题的。

想要在多核系统上达到好的性能,必需用MSI-X,而且要根据CPU core的个数来决定注册中断vector的数目。

[ 本帖最后由 Solaris12 于 2008-8-23 16:53 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-08-23 16:51 |只看该作者
原帖由 catdoll 于 2008-8-22 21:19 发表
请问有谁用过intel 82575EB网卡,该卡使用igb驱动,支持MSI-X, 4-RX queues, 4-TX queues。我在一个4核的机器(linux kernel 2.6.25.15)上测试网桥转发包的性能,发现流量较小时,负载能比较均匀地分配到4个co ...



应该用工具观察一下,每个CPU上中断的次数有多少。

还可以在适当的地方加上计数器统计每个queue上收到包的数目。

如果中断和包的个数在每个queue上不均衡,要排除是不是RSS的问题。

论坛徽章:
0
5 [报告]
发表于 2008-08-23 16:52 |只看该作者
原帖由 catdoll 于 2008-8-22 21:19 发表
请问有谁用过intel 82575EB网卡,该卡使用igb驱动,支持MSI-X, 4-RX queues, 4-TX queues。我在一个4核的机器(linux kernel 2.6.25.15)上测试网桥转发包的性能,发现流量较小时,负载能比较均匀地分配到4个co ...



应该用工具观察一下,每个CPU上中断的次数有多少。

还可以在适当的地方加上计数器统计每个queue上收到包的数目。

如果中断和包的个数在每个queue上不均衡,要排除是不是RSS的问题。


如果这些是均衡的,就应该是协议栈的问题了。

论坛徽章:
0
6 [报告]
发表于 2008-08-24 20:49 |只看该作者

回复 #5 Solaris12 的帖子

cat /proc/interrupts,发现rx-4 queues其中一个的计数明显比别其余3个队列多的多,而tx-4 queues的计数也是集中在其中一个队列上。我采用4-rx, 1-tx方式,结果也差不多。

论坛徽章:
0
7 [报告]
发表于 2008-08-25 10:50 |只看该作者
原帖由 catdoll 于 2008-8-24 20:49 发表
cat /proc/interrupts,发现rx-4 queues其中一个的计数明显比别其余3个队列多的多,而tx-4 queues的计数也是集中在其中一个队列上。我采用4-rx, 1-tx方式,结果也差不多。



多多少? 在不在一个数量级上?


另外,你的MSI-X vector是怎么分配的,有没有多个queue共享一个vector的情况?

不知道Linux igb的RSS是怎么初始化的,还有就是你的网络流量是什么类型的。

[ 本帖最后由 Solaris12 于 2008-8-25 13:30 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-08-25 19:57 |只看该作者

回复 #7 Solaris12 的帖子

绝对不是一个数量级,至少差3位数,MSI-X vector是独立的,4-rx+4-tx+1-other,网络流量就是用smartbits构造的64Bytes的ip数据包,只有一对源/目的地址。

论坛徽章:
0
9 [报告]
发表于 2008-08-26 16:46 |只看该作者
原帖由 catdoll 于 2008-8-25 19:57 发表
绝对不是一个数量级,至少差3位数,MSI-X vector是独立的,4-rx+4-tx+1-other,网络流量就是用smartbits构造的64Bytes的ip数据包,只有一对源/目的地址。





呵呵,你的MSI-X和我的用法一样,每个instance有9个vecotors,测试也一样,用smartbits 64字节ip forwarding.

中断这么不均衡看起来不像是上层的问题,可以改改RSS试试,例如把RSS改成只dispatch包在2个和3个rx queue上,
看看这样,中断是不是均衡的。

另外调试时把中断聚合可以先关掉。


上面说的是rx的问题,tx是否能利用多个queue取决于你的代码怎么实现,Linux如果协议栈不支持多个发送queue的话,得用驱动来处理发送的均衡问题。

[ 本帖最后由 Solaris12 于 2008-8-26 16:53 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-08-26 20:13 |只看该作者

回复 #9 Solaris12 的帖子

请问你的测试结果怎么样,使用的是怎样一个平台?千兆环境下,64bytes的ip forward多少pps?另外不知道,MSI-X模式下,igb驱动究竟有没有使用NAPI模式?

[ 本帖最后由 catdoll 于 2008-8-26 20:14 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP