Users Guide
NPAR – 配置和使用案例示例 NetXtreme-E 用户手册
2018 年 2 月 26 日 • NetXtreme-E-UG100 第 65 页
降低 NIC 内存消耗注意事项
由于此 NIC 支持较快的链路速度,因此接收缓冲区的默认数量更大。当链路速度较快时,在给定的时间间隔内
到达的数据包更多,如果主机系统在处理接收中断情况时有延迟,那么只要所有可用接收缓冲区都在使用,
NIC 将必须丢失数据包。
选择接收缓冲区默认值时要使其在典型配置下工作良好。但是,如果系统中有多个 NIC、多个 NIC 上已启用
NPAR 或只有少量 RAM,则您可参阅设备管理器代码 12 的“黄色叹号”了解 NIC 相关信息。代码 12 表示:由于
没有足够资源,驱动程序加载失败。在此情况下,资源是特定类型的内核内存,被称为非分页内存池 (NPP)
内存。
如果您得到代码 12 或因为其他原因想降低 NIC 消耗的 NPP 内存量:
• 减少 RSS 队列的数量,从默认的 8 降至 4 或 2。每个 RSS 队列都被分配一组自己的接收缓冲区,所以减
少 RSS 队列的数量将减少所分配的 NPP 内存。减少 RSS 队列的数量可能会影响性能,因为参与处理该
NIC 的接收数据包的内核数量变少。应该监控每个处理器的 CPU 利用率,以确保在此更改后没有变“热”
的处理器。
• 通过减少所分配接收缓冲区的数量降低分配的内存。默认值 0 表示驱动程序应自动确定接收缓冲区数量。
对于典型配置,设置为 0(自动)将为每个队列映射到 XXXX 接收缓冲区。您可以选择一个更小的值,
如 1500、1000 或 500。(该值必须在 500 到 15000 之间,且为 500 的倍数。)如上所述,接收缓冲区数
量变少将提高丢包的风险,因而影响数据包发送并提高吞吐量。
参数“RSS 队列的最大数量”和“接收缓冲区(0 = 自动)”,可通过设备管理器
中每个 NIC 的高级属性选项卡进行
修改。如果您想同时修改多个 NIC,使用 Set-NetAdapterAdvancedProperty PowerShell cmdlet 操作更快。
例如,要为系统中所有名称以“SI”开头的 NIC 分配 2 个 RSS 队列,请运行以下命令:
Set‐NetAdapterAdvancedPropertySl*‐RegistryKeyword*NumRSSQueues‐RegistryValue2
同样,要将接收缓冲区的数量设置为 1500,请运行以下命令:
Set‐NetAdapterAdvancedPropertySl*‐RegistryKeyword*ReceiveBuffers‐RegistryValue1500
请参阅 https://blogs.technet.microsoft.com/wincat/2012/08/27/using-powershell-for-nic-configuration-tasks/
以了解使用 PowerShell 修改 NIC 属性的概述。