免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
21 [报告]
发表于 2006-03-14 12:31 |只看该作者

回复 1楼 liangyi571 的帖子

请问一下,119w流入和流出,是说60w的流入+60万的流出,还是说119w的流入+119w的流出?
我在linux下做的只能到40w的流入+40w的流出,性能相差很多

论坛徽章:
0
22 [报告]
发表于 2006-03-14 16:47 |只看该作者
原帖由 zjzf_1 于 2006-3-14 11:20 发表
你对 承受的标准是什么   不丢包 不延迟  还是说只要还有数据过 就算是可以承受


丢包和延时都没测,不过延时应该在 2ms 以下,测过某个优化版本,256字节不丢包可以做到双向 90% 以上,128没测,因为还要和我们其它软件合用,所以单独转发的基本都没测丢包。这个优化只是一个方面而已,要做的工作还很多。

论坛徽章:
0
23 [报告]
发表于 2006-03-14 16:49 |只看该作者
原帖由 louiezhu 于 2006-3-14 12:31 发表
请问一下,119w流入和流出,是说60w的流入+60万的流出,还是说119w的流入+119w的流出?
我在linux下做的只能到40w的流入+40w的流出,性能相差很多


119w的流入+119w的流出,linux 下的驱动可能还需要进一步优化,或者你用的是路由模式,桥方式要快得多。

论坛徽章:
0
24 [报告]
发表于 2006-03-14 20:49 |只看该作者

回复 23楼 liangyi571 的帖子

很想知道你是怎么做的,我在linux下做了很多优化,效果一直不理想,转发效率只能有不到50w(用udp测试的,处理过udp头就直接扔到另外一个网卡上)
我修改的时候感觉linux下有个很奇怪的地方,就是所有的网卡中断处理都由cpu0来处理,也就是根本体现不出来多cpu的优势,不知道freebsd是不是也这样?如果由多cpu来处理转发我觉得我的小系统性能应该还能提高

论坛徽章:
0
25 [报告]
发表于 2006-03-14 21:48 |只看该作者
原帖由 louiezhu 于 2006-3-14 20:49 发表
很想知道你是怎么做的,我在linux下做了很多优化,效果一直不理想,转发效率只能有不到50w(用udp测试的,处理过udp头就直接扔到另外一个网卡上)
我修改的时候感觉linux下有个很奇怪的地方,就是所有的网卡中断 ...


都由CPU0来处理?你的是2.4.*内核吗?因为中断服务程序是不可重入的,所以在另一个CPU上收到的包会趋向转给已经在处理数据包的CPU进行处理,这是为了不弄脏缓存。

我在测试(百兆82559,赛扬1.2G,如我以后的讨论不特殊指明硬件环境,就是说这个)的时候,每1秒就计算一下CPU的占用率,可连续记录180秒。后来发现,百兆9.3W个包的时候最多只占用了CPU的75%。

处理数据包的时候我还是在软中断中进行的,没有拿到数据包就直接发出去,因为如果这么做在线速环境下,转发的数据包少的可怜 所以,我想问一下LZ,当SMB线速148W给你的平台发包时,你的吐吞量有119W吗?

论坛徽章:
0
26 [报告]
发表于 2006-03-15 00:31 |只看该作者
原帖由 louiezhu 于 2006-3-14 20:49 发表
很想知道你是怎么做的,我在linux下做了很多优化,效果一直不理想,转发效率只能有不到50w(用udp测试的,处理过udp头就直接扔到另外一个网卡上)
我修改的时候感觉linux下有个很奇怪的地方,就是所有的网卡中断 ...

CPU是多少?
纯粹的桥不一定是最快的,还要避免锁冲突消耗无畏的CPU。

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


都由CPU0来处理?你的是2.4.*内核吗?因为中断服务程序是不可重入的,所以在另一个CPU上收到的包会趋向转给已经在处理数据包的CPU进行处理,这是为了不弄脏缓存。

我在测试(百兆82559,赛扬1.2G,如我以后 ...


我们的测试环境是 2*148w*0.8,基本上可以理解为 2*148w,包尺寸是50%的 76 字节+50%的 64 字节,有点范懒,没测纯 64 的,在这个环境下 SMB 测试结果报告达到 119w,当然和我们在设备上观察到的数据一致。
直接转发速率下降的原因是不是因为资源冲突呀,我们以前在 FreeBSD 4 系列上做的类似工作基本上能把 CPU 全部占满。当然 4 系列没有锁机制,很多模块可以看成单任务,而且那时候没有什么任务抢占的概念。

论坛徽章:
0
28 [报告]
发表于 2006-03-15 09:25 |只看该作者
原帖由 skipjack 于 2006-3-14 21:48 发表


都由CPU0来处理?你的是2.4.*内核吗?因为中断服务程序是不可重入的,所以在另一个CPU上收到的包会趋向转给已经在处理数据包的CPU进行处理,这是为了不弄脏缓存。

我在测试(百兆82559,赛扬1.2G,如我以后 ...


是2.4的内核,但是我没看到有在其它cpu上收到报文的迹象,/proc/interrupts只有cpu0的中断数量在变化,其它cpu的数量不变。你们在freebsd上遇到过这样的情况么?

论坛徽章:
0
29 [报告]
发表于 2006-03-15 09:28 |只看该作者
原帖由 liangyi571 于 2006-3-15 00:31 发表

CPU是多少?
纯粹的桥不一定是最快的,还要避免锁冲突消耗无畏的CPU。


志强2.4,开了HT,但所有的中断都是cpu0处理的,cpu1的中断数一直是0。而如果cpu1不处理数据的话,也就没有冲突消耗了

论坛徽章:
0
30 [报告]
发表于 2006-03-15 10:58 |只看该作者
原帖由 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%
...

可以说说怎么改的吗,对这个不熟悉的说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP