免费注册 查看新帖 |

Chinaunix

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

乱弹一下网卡芯片吧, 这个对socket程序影响也不小 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-19 10:58 |只看该作者 |倒序浏览
我编socket程序的经验

网卡运行在千兆全双工模式

当流量大于80M Byte/Sec
网卡的软中断是非常恐怖的
基本上一个CPU会到99%, 另外一个CPU也会到30%
同时系统调用也会飞涨到45%以上

当流量到达100M Byte/Sec
两个CPU的系统基本上就都100%了

比较下来, PCI-X的i8254x系列网卡占用最高,而且很难跑到75MB/Sec以上
PCI-e的i82571最高能上112MB/Sec, PCI-e的broadcom5721也能上112MB/Sec
但broadcom的NIC比Intel的CPU占用少一些

我没用过其它网卡, 谁有类似的经验分享一下?

BTW:
速率数据是用wget下载文件得到的, 不是专门的测速软件测的
我用过的千兆芯片:
PCI-X: i82541, i82545, i82546
PCI-e: i82571, i82573, broadcom5721, broadcom5708

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-09-19 11:00 |只看该作者
有的网卡功能多,有的网卡功能少。
不过一方面和网卡有关,一方面也和网卡驱动有关。
如果网卡的功能多,网卡驱动也都支持这些功能,
那么 CPU 的压力就会小很多。

最起码数据包校验要网卡自己来完成。

论坛徽章:
0
3 [报告]
发表于 2007-09-19 16:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2007-09-19 17:04 |只看该作者
原帖由 xiaomiao 于 2007-9-19 16:30 发表
hehe,LZ讨论的都是服务器端的网卡芯片吧,那客户端的呢?比如RTL8139 , Intel 82559, 3COM 3c905c等等,这些对socket程序性能影响大吗?


以现在常用台式机/服务器的CPU来看
百兆芯片达到11.2MB/Sec(全线速下载文件)
CPU以老P4 2.4计算(这个破CPU现在没人用了吧)
CPU占用至多15%
不会成为性能瓶颈
我只用过i82559, RT8139
i82559的CPU占用不超过10%

论坛徽章:
0
5 [报告]
发表于 2007-09-19 17:19 |只看该作者
升级岛NAPI性能会好很多。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-09-19 17:32 |只看该作者
原帖由 lan_wjz 于 2007-9-19 17:19 发表
升级岛NAPI性能会好很多。


如果e1000的驱动打开了NAPI
在单线程112MB/Sec的下载速度下仍旧比broadcom5721的CPU占用高5%(差异全部体现在软中断上)

市场零售的57xx网卡我只见过3COM出的用5721的,而且只有电口, 其它的都是板载, 比如IBM刀片
i82571/82573的网卡零售版本就多多了, 有单/双, 电/光可选择, 外观也漂亮

论坛徽章:
0
7 [报告]
发表于 2007-09-19 17:59 |只看该作者
从哪里看出是SoftIRQ的问题?如果用linux,那不同的芯片驱动肯定不同,同样是NAPI,但是每个厂家的具体实现不同,在效率上肯定有差距,更何况芯片本身就有很大的差别啊。

论坛徽章:
0
8 [报告]
发表于 2007-09-19 18:12 |只看该作者
以前也有类似的经历,
top看一下
ksoftirqd占用CPU资源非常高。当时好像用的e1000.
老想解决这个问题无奈能力有限,希望大牛们给点思路。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2007-09-20 11:18 |只看该作者
原帖由 nnnqpnnn 于 2007-9-19 18:12 发表
以前也有类似的经历,
top看一下
ksoftirqd占用CPU资源非常高。当时好像用的e1000.
老想解决这个问题无奈能力有限,希望大牛们给点思路。



e1000这个问题一直就有
PCI-X的8254x系列网卡个个是软中断大户
用现在出的PCI-e的8257x系列改善很大
但仍旧比broadcom5721的CPU占用高
broadcom5721的内核驱动模块叫tg3
问题是市场上的零售的broadcom千兆网卡只有5721的一款电口
光纤口的PCI-e千兆只能买到intel8257x的, 非常贵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP