- 论坛徽章:
- 0
|
贴子的题目只不过是为了吸引您的眼球,呵呵....
我不知道为什么有人说FreeBSD的网络性能会高于Linux
zjzf_1还提出了4.11高于5.x 6.x的结论。
以至于大家都一头扎向4.11,我今天是来解救大家嘀。挖哈哈...
下面是xfsoul (ktrudger) 关于《精通polling参数调优的进来帮帮忙吧》一文中BSD4.11的吐吞量测试结果。不说别的,CPU占用率上的统计肯定是有问题的,但对BSD不了解,也不能多说什么。但能量守恒至少要遵守吧?每秒92万pps的处理,绝对是要占用大量CPU的。
- FreeBSD 4.11(polling enable,HZ=4000)
- 包长 带宽 包速(pps) 字节速率(Mbps) CPU占用
- 64 32.6% 462963 251.85 1%
- 128 48.87% 401929 424.44 1%
- 256 66.35% 296209 616.11 1%
- 512 84.94% 198098 817.75 0%
- 1024 100.0% 119274 980.91 0%
- 1500 100% 82020 986.86 0%
- 混包 60.26% 328831 549.97 0%
复制代码
xie_minix对BSD网络部分很了解,下面是你对当时测试结论的建议,解释了在BSD下的原因,Linux有对256以下小尺寸数据包的优化驱动版本,不知当时测试的是不是。如果是,BSD会在所有包长下全面溃败下来。
- 测试的数据非常有意思,大家看到没有,在包大于256字节的时候,FB就不行了,估计和MBUF有关.
- 大家知道,FB的MBUF大小是256字节.如果包大于256字节,m_devget函数执行起来就麻烦多了.
- xfsoul你可以把
- #define MSIZE 256 /* size of an mbuf */
- 改成
- #define MSIZE PAGE_SIZE /* size of an mbuf */
- 如果情况可以,再调到2048,1024,512进行测试
复制代码
另外,liangyi571写过一篇《尝试IA架构下的网络处理极限》,文章说将BSD5.4内核转发效率提高到了119万pps,但是是在64和128字节各50%的流量下测试出来的,我当时也参加了讨论,但手里的硬件弱的可怜,所以也只有先记下结论。前几天总算弄到一个X86高端硬件,索性做了测试。
下面是我在Linux-2.6.15内核,双至强3.2G,PCI-X 133,Intel 82546下的网络吐吞测试结果:
- Frame Size 64 128 256 512 1024 1280 1518
- ------------------------------------------------------------------------
- Pair1 TxTput(fps) 504032 419463 359195 234962 119732 96154 81274
- %TxTput 33.87 49.66 79.31 100.00 100.00 100.00 100.00
- Pair2 TxTput(fps) 500000 419463 359195 234962 119732 96154 81274
- %TxTput 33.60 49.66 79.31 100.00 100.00 100.00 100.00
- Frame Size 64 128 256 512 1024 1280 1518
- ------------------------------------------------------------------------
- Pair1 TxTput(fps) 694444 612745 452899 234962 119732 96154 81274
- %TxTput 46.67 72.55 100.00 100.00 100.00 100.00 100.00
复制代码
吐吞量是100万pps(100%纯64字节小包),并且对每个数据包都进行了简单操作,并没有发生liangyi571所说的稍加操作吐吞量就锐减的现像。
[ 本帖最后由 skipjack 于 2006-7-27 10:46 编辑 ] |
|