惠普关于其 QLogic (fka Broadcom) NetXtreme II 适配器的白皮书(其中包括我正在测试的特定 NIC)指出(第 7 页),它们对于高达 256 字节/数据包的数据包的小数据包性能高于 5,000,000 数据包/秒。
在我对一个应用程序的测试中,我禁用了除 UDP 接收部分之外的所有处理,我只能达到 120,000 个数据包/秒。数据包均匀分布在 12 个多播组上。
我注意到当我提高 UDP 发送速率并在 120,000 左右达到最大值时,有一个内核(2 个插槽上的每个内核中有 12 个内核)其负载逐渐增加。但我不知道那个核心在做什么以及为什么。这不是我的应用程序中的单线程瓶颈,因为我是否为所有多播组运行应用程序的单个实例或每个处理 1 个多播组的 12 个实例都没有关系。所以瓶颈不是我的接收器应用程序。
MSI 已启用(通过设备管理器中的“资源类型”视图进行验证)并且 RSS 也在 NIC 设置中启用,具有 8 个队列。那么是什么执着于那个核心呢?所有 NIC 卸载功能当前都处于开启状态,但将它们关闭并没有帮助。
那么瓶颈可能在哪里呢?
系统详情: