免费注册 查看新帖 |

Chinaunix

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

[网络管理] linux nat 不支持双cpu? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-05-16 23:10 |只看该作者
原帖由 ippen 于 2006-5-16 17:00 发表

是否就是说在NAT的环境中使用SMP的机器不如使用单cpu的机器?


也不能定论,SMP引入了并行性的同时也代来了很多互斥问题。
如果不同CPU频繁访问全局资源,效率很可能还不如UP。
在NAT网关这个问题里,状态表就是一个全局资源,网络接口也是全局资源,对于状态表而言,SMP能带来多少好处要取决于实现。而网络接口就根本无法从SMP处得益了。
决定用不用SMP之前要搞清楚Linux的这部分实现,并分析出你的瓶颈在哪。

论坛徽章:
0
42 [报告]
发表于 2006-05-17 09:55 |只看该作者
在对系统状态的检测看来,并不是netfilter对smp不支持,NAT进程启动时,系统是能将任务自动分担到各个CPU中,过了一段时间后,就变成只用一个cpu工作了,而这个时间并不固定,有时10分钟,有时12小时,似乎是某个特定的条件触发导致的。只要你将iptables stop,再重新启动,又是多cpu并行工作。多cpu并行工作时,系统的负载能力的确是比较高;尝试过smp_affinity,但效果不明显,流量甚至一直缓慢下降,参考 platinum 和johnbull 的意见,应该是单cpu更适合于NAT的应用环境,现在正在重新编译内核,迟些将测试结果告诉各位。

论坛徽章:
0
43 [报告]
发表于 2006-05-18 09:07 |只看该作者
严重关注。

论坛徽章:
0
44 [报告]
发表于 2006-05-19 08:36 |只看该作者
ding!

论坛徽章:
0
45 [报告]
发表于 2006-05-19 13:09 |只看该作者
收益非浅。

论坛徽章:
0
46 [报告]
发表于 2006-05-21 02:48 |只看该作者
可以试试  redhat as4 看看是否可以正常使用。SMP还是很奇怪的跟内核有很大关系。我觉得可能是netfilter和内核有些兼容性的问题。理论上SMP对netfilter不会有多大帮助。问题在于状态表的控制权上,操作系统很难判断。为啥出现有时可以自动分配实在是说不上来。感觉和内核关系最大。

论坛徽章:
0
47 [报告]
发表于 2006-05-21 02:52 |只看该作者
对了 “双至强64位的3Gcpu”   好像问题就出在这里。  建议用2.6.13 以后的内核因为以前的内核对64位和smp支持的都不好。as4 内核是2.6.9 估计可以满足部分要求。

论坛徽章:
0
48 [报告]
发表于 2006-05-24 13:19 |只看该作者
高手呀,都是!!!!

论坛徽章:
0
49 [报告]
发表于 2006-05-25 09:30 |只看该作者
大家一定都等急了吧?
先告诉大家2.4.31内核nat测试结果,测试的结果有些意外,虽然platinum 和johnbull 提供的信息表明smp不如up,但测试结果看来,smp的负载能力较up的内核高,这个和具体环境有关系,系统有个程序叫irqbalance,其作用是将irq中断平均分配各多个CPU,作用和smp_affinity类似,启动后,明显看到IRQ中断分配给两个不同的CPU,因而我的两张网卡的数据处理分别由两个CPU分配,因而负载能力比UP高
测试中,如果用up内核,早上10:00左右cpu就到了100%,一直到晚上1:00左右才降下来;用smp内核,负责nat的网卡的cpu最高到82%,负责内网网卡的cpu最高在56%,余下的两颗CPU一直100%空闲(我的机器是双CPU双核,所以总共4个CPU)
结论:虽然smp对netfilter支持不好,但如果你有两张网卡的话,双cpu和smp系统对系统负载能有提高,但如果是单网卡的话,smp就没有意义了,三张以上网卡和更多的CPU是否能有更高的性能?尚未测试,个人认为有系统性能会更高
2.6的内核仍然测试中,2.6up内核编译有错,nat无法加载,要下周才有结果了

[ 本帖最后由 ippen 于 2006-5-25 09:35 编辑 ]

论坛徽章:
0
50 [报告]
发表于 2006-05-25 10:21 |只看该作者
根据文档显示,修改 smp_affinity 可以实现同网卡的 I/O 均匀分布在多个逻辑 CPU 上,但我实验没有成功,包括 2.4 和 2.6 内核都试过了,不过文档贴出来的操作截图却可以,让我很诧异

没错,RH 有个程序叫 irqbalance,用于分配多个设备的 I/O 到多个逻辑 CPU 上,如果不启用 irqbalance,大家都挤用一个逻辑 CPU,启用以后会“各行其道”,但并没有达到文档中说的修改 smp_affinity 后的作用,如果支持了这个功能,那就牛了。。。

另外说一句,2.6 内核不要使用 2.6.16.x,netfilter 部分有了很大改动,废弃了一些之前的框架,所以与现有的系统(比如 AS4、CentOS 4.x)不兼容,建议使用 2.6.15.1x
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP