免费注册 查看新帖 |

Chinaunix

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

[CPU及多核] 82599EB+2个物理cpu E5 CPU不能均衡 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-09-24 13:39 |只看该作者
只有16个队列是因为HW RSS最大只支持16.
大于16的队列是用HW FLOW DIRECTOR实现的,它是在同一条数据流的发送时来设置相应的接收数据的队列的。也就是说如果一条流只有接收,没有响应,则大于16的队列就无效。

如果有明确的流分类规则,可以类似下面的试一下:
ethtool -K ethX ntuple on
ethtool -U ethX flow-type tcp4 src-ip 168.0.0.1  action 1  --〈队列1〉

另外,如果有兴趣,可以用驱动的接口实现5-tuple流分类,最多支持128条。

论坛徽章:
0
12 [报告]
发表于 2013-09-24 15:02 |只看该作者
本帖最后由 84500316 于 2013-09-24 15:03 编辑
mr_king06 发表于 2013-09-24 13:39
只有16个队列是因为HW RSS最大只支持16.
大于16的队列是用HW FLOW DIRECTOR实现的,它是在同一条数据流的发 ...


>只有16个队列是因为HW RSS最大只支持16.
>大于16的队列是用HW FLOW DIRECTOR实现的,它是在同一条数据流的发送时来设置相应的接收数据的队列的。也就是说如果一条流只有接收,没有响应,则大于16的队列就无效。
意思是说 可以把reply方向的数据流分配到第>16cpu上是吧?  老的ixgbe驱动有这个开关, 新版本好像找不到, 请明示.
  1. version:        3.17.3
  2. license:        GPL
  3. description:    Intel(R) 10 Gigabit PCI Express Network Driver
  4. author:         Intel Corporation, <linux.nics@intel.com>
  5. srcversion:     7945D3AF56331F0642022E6
  6. alias:          pci:v00008086d00001557sv*sd*bc*sc*i*
  7. alias:          pci:v00008086d0000154Fsv*sd*bc*sc*i*
  8. alias:          pci:v00008086d0000154Dsv*sd*bc*sc*i*
  9. alias:          pci:v00008086d00001528sv*sd*bc*sc*i*
  10. alias:          pci:v00008086d000010F8sv*sd*bc*sc*i*
  11. alias:          pci:v00008086d0000151Csv*sd*bc*sc*i*
  12. alias:          pci:v00008086d00001529sv*sd*bc*sc*i*
  13. alias:          pci:v00008086d0000152Asv*sd*bc*sc*i*
  14. alias:          pci:v00008086d000010F9sv*sd*bc*sc*i*
  15. alias:          pci:v00008086d00001514sv*sd*bc*sc*i*
  16. alias:          pci:v00008086d00001507sv*sd*bc*sc*i*
  17. alias:          pci:v00008086d000010FBsv*sd*bc*sc*i*
  18. alias:          pci:v00008086d00001517sv*sd*bc*sc*i*
  19. alias:          pci:v00008086d000010FCsv*sd*bc*sc*i*
  20. alias:          pci:v00008086d000010F7sv*sd*bc*sc*i*
  21. alias:          pci:v00008086d00001508sv*sd*bc*sc*i*
  22. alias:          pci:v00008086d000010DBsv*sd*bc*sc*i*
  23. alias:          pci:v00008086d000010F4sv*sd*bc*sc*i*
  24. alias:          pci:v00008086d000010E1sv*sd*bc*sc*i*
  25. alias:          pci:v00008086d000010F1sv*sd*bc*sc*i*
  26. alias:          pci:v00008086d000010ECsv*sd*bc*sc*i*
  27. alias:          pci:v00008086d000010DDsv*sd*bc*sc*i*
  28. alias:          pci:v00008086d0000150Bsv*sd*bc*sc*i*
  29. alias:          pci:v00008086d000010C8sv*sd*bc*sc*i*
  30. alias:          pci:v00008086d000010C7sv*sd*bc*sc*i*
  31. alias:          pci:v00008086d000010C6sv*sd*bc*sc*i*
  32. alias:          pci:v00008086d000010B6sv*sd*bc*sc*i*
  33. depends:        dca
  34. vermagic:       2.6.32.27 686 4KSTACKS
  35. parm:           InterruptType:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default IntMode (deprecated) (array of int)
  36. parm:           IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)
  37. parm:           MQ:Disable or enable Multiple Queues, default 1 (array of int)
  38. parm:           DCA:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int)
  39. parm:           RSS:Number of Receive-Side Scaling Descriptor Queues, default 0=number of cpus (array of int)
  40. parm:           VMDQ:Number of Virtual Machine Device Queues: 0/1 = disable, 2-16 enable (default=8) (array of int)
  41. parm:           InterruptThrottleRate:Maximum interrupts per second, per vector, (0,1,956-488281), default 1 (array of int)
  42. parm:           LLIPort:Low Latency Interrupt TCP Port (0-65535) (array of int)
  43. parm:           LLIPush:Low Latency Interrupt on TCP Push flag (0,1) (array of int)
  44. parm:           LLISize:Low Latency Interrupt on Packet Size (0-1500) (array of int)
  45. parm:           LLIEType:Low Latency Interrupt Ethernet Protocol Type (array of int)
  46. parm:           LLIVLANP:Low Latency Interrupt on VLAN priority threshold (array of int)
  47. parm:           FdirPballoc:Flow Director packet buffer allocation level:
  48.                         1 = 8k hash filters or 2k perfect filters
  49.                         2 = 16k hash filters or 4k perfect filters
  50.                         3 = 32k hash filters or 8k perfect filters (array of int)
  51. parm:           AtrSampleRate:Software ATR Tx packet sample rate (array of int)
  52. parm:           LRO:Large Receive Offload (0,1), default 1 = on (array of int)
  53. parm:           allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0 = Disable (array of int)
复制代码
>如果有明确的流分类规则,可以类似下面的试一下:
>ethtool -K ethX ntuple on
>ethtool -U ethX flow-type tcp4 src-ip 168.0.0.1  action 1  --〈队列1〉
有兴趣, 我尝试, 不过我ethtool不support这个, 看了下patch有点大, 要消化下.

>另外,如果有兴趣,可以用驱动的接口实现5-tuple流分类,最多支持128条。
有兴趣, 是否有资料

论坛徽章:
0
13 [报告]
发表于 2013-09-24 15:27 |只看该作者
检查一下XPS的设置

论坛徽章:
0
14 [报告]
发表于 2013-09-25 13:00 |只看该作者
可能说得不太清楚,实际上也不能简单说大于16的队列。82599HW处理接收数据流时先匹配FLOW DIRECTOR,如果不命中则由RSS处理。因此,两者同时工作时,可以支持队列数大于16.
而FLOW DIRECTOR的一种模式实现为:比如接收数据流为(1.1.1.1, 2.2.2.2...),那么在相应的发送数据流为(2.2.2.2, 1.1.1.1,...),在发送的时候就会设定接收数据流(1.1.1.1, 2.2.2.2...)的 队列,而此时的队列是可以大于16的。实际上缺省时达到将同一数据流的接收发送绑定到同一个CPU的效果。

关于5-tuple的细节,你可在官网上搜数据手册。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP