免费注册 查看新帖 |

Chinaunix

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

NAPI驱动在多CPU的load balance问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-27 11:21 |只看该作者 |倒序浏览
我看过独孤大侠之前关于这个问题的文章,

关于NAPI 网卡驱动的,网关做NAT,8个 CPU,两个网卡,eth0的irq affinity mask是0f,eth1是f0,结果发现eth0的中断只发生cpu0上,eth1的中断只发生在cpu4,关键是cpu4的软中断处理时间占了100%,导致严重丢包,NAPI,每个网卡只能用一个CPU吗,中断发生在哪个CPU上,软中断就在哪个CPU上处理,是这样吗?
另外,软中断处理函数会调用e1000的poll函数,会调ip_rcv->netfilter的勾子函数,这样netfilter的处理也算到si的时间吗?
这个问题有什么好的解决方法,谢谢

论坛徽章:
0
2 [报告]
发表于 2009-09-27 12:19 |只看该作者
用Intel的82575或82576网卡芯片

论坛徽章:
0
3 [报告]
发表于 2009-09-27 15:47 |只看该作者
基本上我的nat服务器也是遇到这个问题 了,好像在linux下iptables的的多核cpu之间负载并不均衡,这个要看linux的开发 了,如果这个问题解决了,以后
可以直接弄台服务器当专门的路由器用了~~

论坛徽章:
0
4 [报告]
发表于 2009-09-27 17:06 |只看该作者

回复 #1 ller 的帖子

我把NAPI的支持去掉了,重新编译了驱动,还是一样的。。。

论坛徽章:
0
5 [报告]
发表于 2009-09-27 23:18 |只看该作者
使用多接收队列。

论坛徽章:
0
6 [报告]
发表于 2009-09-28 19:14 |只看该作者
原帖由 emmoblin 于 2009-9-27 23:18 发表
使用多接收队列。

这个指的是使用类似 82576 那样的多队列网卡实现吧?
还是说自己改造 netif_recv_skb 在里面加上类似多线程多队列机制?

论坛徽章:
0
7 [报告]
发表于 2009-09-28 21:54 |只看该作者
原帖由 platinum 于 2009-9-28 19:14 发表

这个指的是使用类似 82576 那样的多队列网卡实现吧?
还是说自己改造 netif_recv_skb 在里面加上类似多线程多队列机制?

应该是指使用类似82576这样的硬件提供的网卡多队列。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP