20040925
发表于 2012-05-25 11:36
本帖最后由 20040925 于 2012-05-25 12:05 编辑
回复 3# crspo
'"而RSS仅仅是根据hash值确定处理器。"
RSS应该是根据hash值确定接收队列,至于每个队列对应哪个处理器应该是另外一项工作,需要软件设置(如irqbalance)或者有的网卡的驱动已经具有irqbanlance的功能了,如ixgbe,会动态的修改队列所绑定的cpu
# cat /proc/irq/198/smp_affinity
0040
# cat /proc/irq/198/smp_affinity
0020
# cat /proc/irq/198/smp_affinity
0080
# cat /proc/irq/198/smp_affinity
0040
# cat /proc/irq/198/smp_affinity
0040
# cat /proc/irq/198/smp_affinity
0040
# cat /proc/irq/198/smp_affinity
0001
# cat /proc/irq/198/smp_affinity
0020
# cat /proc/irq/198/smp_affinity
0010
# cat /proc/irq/198/smp_affinity
0010
# cat /proc/irq/198/smp_affinity
0080
shank941
发表于 2012-05-25 16:39
当然用多队列啊
接收队列可以用五元组分,每个CPU一个接收队列,这样应用层不需要锁了。
发送队列,每个CPU一个独立的队列就好,也没有核间竞争了。
瀚海书香
发表于 2012-05-25 16:51
回复 22# shank941
接收队列可以用五元组分,每个CPU一个接收队列,这样应用层不需要锁了。
这与应用层貌似没多大关系吧。
比如:应用层进程A,处理连接c1,c2。而C1和C2分别被hash到CPU1和CPU2上。那你的应用程序怎么处理?
而且,应用程序也不会知道每个连接会被hash到那个CPU上,因为这个网卡硬件的事。
20040925
发表于 2012-05-28 09:51
回复 23# 瀚海书香
要想做到进程和接收队列同一cpu,要用RFS吧,RSS本身应该没有这个功能吧?
瀚海书香
发表于 2012-05-28 10:29
回复 24# 20040925
要想做到进程和接收队列同一cpu,要用RFS吧,RSS本身应该没有这个功能吧?
这个我知道。
你没有看我回复那个帖子的原因:mrgreen:
我是在告诉他RSS无法实现RFS的功能。
20040925
发表于 2012-05-28 13:25
回复 25# 瀚海书香
RFS还真没用过,RFS对服务器性能优化有帮助,做转发的设备应该不需要用RFS。
shamofeiyu
发表于 2012-11-19 22:44
回复 17# 灌水菜鸟
我们在做 视频点播IP码流的监测,就需要高性能的数据接收网卡,这段时间一直在解决丢包的问题,头都大了
chenyongyun
发表于 2013-07-17 17:40
不错的贴子,很想知道如何测试网卡队列呢
lyhabc
发表于 2016-08-12 16:02
@瀚海书香
RFS和RPS的功能