免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: liangyi571
打印 上一主题 下一主题

尝试IA架构下的网络处理极限 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-03-13 00:15 |只看该作者
原帖由 louiezhu 于 2006-3-12 20:16 发表
请问一下,你说的linux下的75wpps转发率,是不是linux下的极限呢?freebsd下的可以到119wpps以上,是不是说freebsd的相关性能好得多?


不完全是,理论上讲极限是由硬件决定的,所有操作系统都可以优化,只不过我的工作是在 freebsd 下进行的罢了。

论坛徽章:
0
12 [报告]
发表于 2006-03-13 00:40 |只看该作者
原帖由 liangyi571 于 2006-3-13 00:14 发表

呵呵,你的建议狠不错,我也在想如何能提高处理器的亲和度,改进并行算法。不过感觉 ULE 还不是狠稳定,不知是不是观望一下好。另外,提高处理器的亲和度也不容易,因为CPU间还是有锁需要同步,因此不可能完全独 ...


很想和你讨论,但对BSD不是很熟悉,虽然在网络入门的时候看的是BSD的mbuf实现tcp/ip协议栈源码,但随后就转到Linux下用skbuff实现的tcp/ip协议栈上去了。不知道是不是也存在Linux下的NAPI, softirq,spinlock这类的名词.我是看了你给我的链接跑到这里来的.二是,我自己的平台只是个百兆环境,刚刚又测试了一下,82559网卡在赛扬1.2G时可以达到双向31.58%,也就是93kpps,我也还在尝试优化,如果接近120kpps时,我再移到千兆平台下.IA构架的百兆,千兆都是最高配置时,性能相差大概是8倍.
我在百兆时有个问题一直没有解决掉,在单向测和双向测时,吐吞量虽然都是62M,但对CPU的占用率很不一样。单向时CPU只占到70%左右,双向时CPU就到100%。所以我想可能的原因:单向时的瓶颈在网卡硬件,双向时的瓶颈在CPU处理,不知你是不是也遇到过这样的问题?

[ 本帖最后由 skipjack 于 2006-3-13 10:17 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2006-03-13 00:46 |只看该作者
原帖由 liangyi571 于 2006-3-11 01:41 发表
花了三周时间改进了 BSD 的内核 ,用 SMB 测了一下,双向流,76/64字节包各 50%,转发速率 119万 pps,转发率 >40%
操作系统:FreeBSD 5.4
硬件平台:2 * Xeon 3.2G,2 * 82545EM,PCI-X 133
系统CPU:50%
...


为什么要64字节与76字节混测,而不单测64字节呢?
我的82559,赛扬1.2G,百兆平台,64字节双向时是31.58%,128字节是51.39%.256字节是89.90%
另外,你的这个系统是桥还是路由,或者是网卡短接时的性能?

[ 本帖最后由 skipjack 于 2006-3-13 10:24 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2006-03-13 10:48 |只看该作者
原帖由 liangyi571 于 2006-3-11 01:41 发表
花了三周时间改进了 BSD 的内核 ,用 SMB 测了一下,双向流,76/64字节包各 50%,转发速率 119万 pps,转发率 >40%
操作系统:FreeBSD 5.4
硬件平台:2 * Xeon 3.2G,2 * 82545EM,PCI-X 133
系统CPU:50%
...


呼呼,修改贴子,不能起来顶的作用,看到还要发新贴才可以。
LZ说加入一点操作就会使性能大幅下降,大概下降多少?

论坛徽章:
0
15 [报告]
发表于 2006-03-13 12:57 |只看该作者
原帖由 skipjack 于 2006-3-13 00:40 发表


很想和你讨论,但对BSD不是很熟悉,虽然在网络入门的时候看的是BSD的mbuf实现tcp/ip协议栈源码,但随后就转到Linux下用skbuff实现的tcp/ip协议栈上去了。不知道是不是也存在Linux下的NAPI, softirq,spinlock这类 ...


BSD 下,单向和双向差别不是很大(也许用原始驱动有差别)。我改了驱动的一些操作流程,可能减少了这方面的冲突吧。spinlock、softirq 这些东西肯定都有,Polling 机制也有,不过我观察对于 8254x 这组芯片,Polling 是否启用差别不大,无论在CPU上还是在吞吐上,看不出很大差别。

论坛徽章:
0
16 [报告]
发表于 2006-03-13 12:58 |只看该作者
原帖由 skipjack 于 2006-3-13 00:46 发表


为什么要64字节与76字节混测,而不单测64字节呢?
我的82559,赛扬1.2G,百兆平台,64字节双向时是31.58%,128字节是51.39%.256字节是89.90%
另外,你的这个系统是桥还是路由,或者是网卡短接时的性能?


我测的是桥方式,改进后的效果类似短接。

论坛徽章:
0
17 [报告]
发表于 2006-03-13 13:02 |只看该作者
原帖由 skipjack 于 2006-3-13 10:48 发表


呼呼,修改贴子,不能起来顶的作用,看到还要发新贴才可以。
LZ说加入一点操作就会使性能大幅下降,大概下降多少?


比如在CPU占用率为26%,转发率为 950kpps时,用一个独立线程去处理网络数据,性能会有急剧下降,好像只有 700kpps,虽然处理过程狠简单。一种可能是由于锁冲突等引起的任务切换比较致命,另一种可能就是CPU的cache,原因待查。

论坛徽章:
0
18 [报告]
发表于 2006-03-13 13:17 |只看该作者
原帖由 liangyi571 于 2006-3-13 12:57 发表


BSD 下,单向和双向差别不是很大(也许用原始驱动有差别)。我改了驱动的一些操作流程,可能减少了这方面的冲突吧。spinlock、softirq 这些东西肯定都有,Polling 机制也有,不过我观察对于 8254x 这组芯片, ...

这个我也发现了,启不启用polling是没有差别的,改的思路差不多,都是短接的桥。

论坛徽章:
0
19 [报告]
发表于 2006-03-13 13:25 |只看该作者
原帖由 skipjack 于 2006-3-13 13:17 发表

这个我也发现了,启不启用polling是没有差别的,改的思路差不多,都是短接的桥。


呵呵,两点之间直线最近

论坛徽章:
0
20 [报告]
发表于 2006-03-14 11:20 |只看该作者
你对 承受的标准是什么   不丢包 不延迟  还是说只要还有数据过 就算是可以承受
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP