必须启用并精准配置rss:先验证硬件支持与驱动,再按物理核数设队列数、绑定对应cpu、优化哈希密钥与间接表,禁用vmq及节能特性,最后用perfmon验证负载均衡。
windows 中为高带宽网卡手动调整接收队列数量,核心是启用并合理配置 rss(receive side scaling)和硬件多队列,不能只靠“自动”或默认值。关键在于匹配 cpu 物理资源、避免跨 numa 访问、防止流量倾斜。
确认网卡是否支持硬件 RSS 和多队列
在 PowerShell(管理员权限)中运行:
Get-NetAdapterRss -Name "Ethernet"若返回 RSSEnabled: True,说明已启用 RSS;若报错或显示 False,需先启用:
Enable-NetAdapterRss -Name "Ethernet"再用设备管理器检查网卡高级属性中是否有 “Receive Side Scaling” 或 “RSS Queues” 选项。部分 Realtek 或旧驱动可能不暴露该设置,建议升级至厂商最新驱动(如 Intel PROSet、Marvell/Realtek 官方版)。
设置 RSS 队列数量与 CPU 绑定
队列数不是越多越好,应以物理核心数为基准(跳过超线程):
- 单路 16 核 CPU(如 Xeon Silver 4314),设 16 个 RSS 队列
- 双路服务器且启用 NUMA,需分节点绑定:Node 0 的 CPU 0–15 绑定队列 0–7,Node 1 的 CPU 16–31 绑定队列 8–15
- 普通桌面 i7/i9(8核16线程),推荐设 8 队列,BaseProcessorNumber 设为 0,MaxProcessors 设为 8
执行命令示例(替换 "Ethernet" 为你的网卡名):
Set-NetAdapterRss -Name "Ethernet" -BaseProcessorNumber 0 -MaxProcessors 8 -NumberOfReceiveQueues 8优化间接表与哈希密钥防流量倾斜
默认间接表常导致小流集中到少数队列,造成 CPU 负载不均。需重置哈希密钥并检查均衡性:
- 导出当前间接表:netsh int ipv4 show rss "Ethernet"
- 观察各队列接收字节数是否接近(可用性能监视器添加 Network Interface\Bytes Received/sec,按实例筛选)
- 生成并应用新哈希密钥(提升四元组散列均匀性):
Set-NetAdapterRss -Name "Ethernet" -HashSecretKey ([byte[]](1..40 | ForEach-Object { Get-Random -Min 0 -Max 255 })) - 如主要跑 IPv4 TCP 小包(如 API 网关、高频 WebSocket),可强制使用四元组哈希:
Set-NetAdapterRss -Name "Ethernet" -HashingPolicy IPv4AndIPv6TcpIp
配合网卡高级设置调优
RSS 效果依赖底层硬件队列与中断调度协同工作:
- 在设备管理器 → 网卡属性 → 高级中,确保 Receive Side Scaling 为 Enabled
- 关闭 Energy Efficient Ethernet (EEE) 和 Green Ethernet,它们会引入微秒级延迟抖动
- 将 Interrupt Moderation(中断节流)设为 Enabled,避免高吞吐下中断风暴拖垮 CPU
- 如网卡支持,把 Receive Buffers 提高到 1024 或 2048(非队列数,是单队列缓冲深度)











