Windows 网卡高级设置详解 - Jumbo Packet、RSS、LSO、RSC、Flow Control、EEE、Wake on LAN 到底怎么设置
· 小村 豪 · Windows, 网络, 网卡, Ethernet, 性能调优, Windows 开发
Windows 网卡的 [高级] 选项卡 上,排列着一堆看起来很陌生的字眼。
Jumbo Packet、Large Send Offload、Interrupt Moderation、Receive Side Scaling、Flow Control、Energy Efficient Ethernet。光看名字会想把全部都打开,但实际上 要以什么为优先,答案会完全不同。
- 是想提升大流量传输的吞吐量吗
- 是想把小数据包的延迟压低吗
- 是想降低 CPU 使用率吗
- 是想让睡眠唤醒和 Wake on LAN 稳定下来吗
- 是想排查驱动程序或交换机的兼容性问题吗
这一层如果没先想清楚就「先全部打开」「先给它个 Jumbo 9014」「慢就固定在 1Gbps 全双工」,相当容易出问题。
本文主要针对 Windows 10 / 11 / Windows Server 的有线 Ethernet 网卡,整理在实务中调整网卡高级设置时的思路。 每项设置的含义、把值调高 / 调低 / 开启 / 关闭时容易发生什么、在什么场景下才值得调整,整理成可以一眼扫完的内容。
另外,网卡的显示名称与可选项 会因厂商与驱动程序而有很大差异。
Jumbo Packet 有时会显示为 Jumbo Frames,Receive Buffers 会变成 Receive Descriptors,Priority & VLAN 会变成 Packet Priority & VLAN。本文会把意思相近的项目归到一起讨论。
1. 先说结论
先把实务上比较不容易出错的结论放在前面。
- Speed & Duplex 原则上用 Auto。遇到降速到 100Mbps 的问题时,直接手动固定为
1.0 Gbps 全双工是最后的选项。 - Checksum Offload / RSS / LSO / RSC 原则上保持启用或默认值。随意关闭反而容易白白浪费 CPU。
- Jumbo Packet 只在端到端全部对得上时才用。只有网卡设成 9014,中途链路还是 1500,就是个陷阱。
- Interrupt Moderation 是吞吐量与延迟之间的拉锯。设高 CPU 会轻松,但延迟会增加。
- Flow Control 有时可以减少丢包,但也可能把拥塞扩散出去。
- EEE / Green Ethernet / Selective Suspend 是省电设置,不是让你变快的设置。
- VMQ / SR-IOV 是给 Hyper-V 主机用的,不是让普通台式机变快的魔法。
- Wake on Pattern Match 很容易变成非预期唤醒的原因,所以只要是想用 Wake on LAN,靠 Magic Packet 更安全。
- TCP Chimney Offload 之类的老项目,现在最好别碰。
简单说,网卡高级设置不是「看起来很厉害就全部打开」的地方。 是 要先决定吞吐量、延迟、CPU、耗电、兼容性中优先哪一项,再逐项调整的地方。
2. 在哪里查看设置
2.1 从 GUI 查看
从网络连接进入
- 运行
ncpa.cpl - 在目标网卡上点击右键
- 属性 → 配置
- 高级 (Advanced) 选项卡
从设备管理器进入
- 设备管理器
- 网络适配器
- 对目标网卡点击右键 → 属性
- 高级 选项卡
这里列出的项目,就是本文的主角。 不过 电源管理选项卡的设置 在实务上影响也不小,后半部分会介绍。
2.2 用 PowerShell 查看
用 PowerShell 比较容易一次列出当前值,也方便在变更前做备份。
Get-NetAdapter
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Sort-Object DisplayName |
Format-Table DisplayName, DisplayValue, RegistryKeyword, RegistryValue -Auto
部分网卡的 RegistryKeyword 会是标准化的名称,会看到像 *RSS、*VMQ、*SRIOV、*EEE 这样的字符串。
但是 DisplayName 与 DisplayValue 会因驱动程序而异。要写变更脚本时,先在实机上列一遍比较安全。
3. 动手之前的大原则
调整网卡设置之前,如果缺了这一层,通常会陷入泥潭。
3.1 先确定「要改善什么」
同样一句「网络很慢」,内容可能完全不同。
- 大文件复制慢 → 吞吐量、RSS、RSC、LSO、Jumbo、缓冲区
- 小的 request/response 卡顿 → Interrupt Moderation、RSC、EEE、队列深度
- CPU 高 → offload、RSS、RSC、中断
- 睡眠唤醒后不正常 → Selective Suspend、电源管理、WoL
- 偶尔断线 / 降速到 100Mbps → 网线、对端设备、Speed & Duplex、EEE、驱动程序
目的不同却调整同样的设置,别说改善,反而可能恶化。
3.2 先怀疑物理层与对端设备
有很多问题不是靠网卡设置能修好的。
- 网线不良
- 交换机 / 路由器 / dock 的兼容性
- 陈旧的固件
- USB 网卡供电不足
- 端口侧的错误
- 丢包或重传
特别是 降到 100Mbps、Link flap(链路频繁抖动)、只有大流量传输时才出问题 这类症状,先看物理层与对端更快。
3.3 一次只改一项
Jumbo、LSO、RSC、RSS、EEE 一次全改,等要分析是什么生效时会完全搞不清楚。 把变更前的设置记录下来,一次只动一项 再测量变化,这才是基本姿势。
3.4 确定要测量什么
至少这些数据是要看的。
- 连接速度(1G / 2.5G / 10G 等)
- 吞吐量
- 延迟
- CPU 使用率
- 网卡统计(丢包 / 错误 / 缓冲区不足)
- 睡眠唤醒的稳定度
设置变更要看的不只是主观感受,用数据对比更有说服力。
4. 主要设置一览表
先放一张可以一次看完每项设置作用的表格。
| 设置 | 在做什么 | 调高 / 启用后容易发生 | 调低 / 停用后容易发生 | 基本方针 |
|---|---|---|---|---|
| Speed & Duplex | 连接速度与双工模式的协商 / 固定 | 配合旧对端设备可能能接上,但不一致时会 duplex mismatch 或降速 | 改回 Auto 在现代设备之间更稳定 | 原则上用 Auto |
| Jumbo Packet / Jumbo Frames | 使用比 MTU 更大的帧 | 大流量传输时 CPU 与头部开销容易下降 | 兼容性最高,但数据包数量会增加 | 只在专用链路且端到端一致时使用 |
| Checksum Offload | 由网卡处理 IP / TCP / UDP 的 checksum | CPU 容易下降 | 操作系统侧计算增加,CPU 容易上升 | 原则上启用 |
| LSO / TSO | 由网卡拆分较大的 TCP 发送数据 | 对发送密集型的吞吐量与 CPU 有明显效果 | CPU 负担会增加,但便于排查兼容性问题 | 通常启用 |
| RSC / LRO | 在网卡侧合并接收到的 TCP 分段 | 对接收吞吐量与 CPU 有明显效果 | 粒度更细,在低延迟场景可能更有利 | 以接收为重时就启用 |
| RSS | 把接收处理分散到多个 CPU | 在多核环境下容易提升吞吐量 / 可扩展性 | 集中在单个 CPU 容易造成瓶颈 | 多核环境原则上启用 |
| Interrupt Moderation | 抑制中断频率 | CPU 轻松但延迟容易增加 | 延迟下降但 CPU / DPC 负载容易上升 | 以默认 / Adaptive 作为起点 |
| Receive / Transmit Buffers | Ring / Buffer 深度 | 对突发流量的耐受度与持续吞吐量有效 | 内存占用减少,但对丢包的抵抗力较弱 | 只在不够时才增加 |
| Flow Control | 802.3x pause frame 的收发 | 可以减少丢包 | 对 tail latency 有时反而更好 | 需结合整体网络设计一起考虑 |
| Priority & VLAN | 802.1p / 802.1Q 标签 | 可以使用 VLAN / QoS | 以单纯 L2 方式运作 | 有需要才用 |
| VMQ / SR-IOV | Hyper-V / 虚拟化用的网卡辅助功能 | 对虚拟机吞吐量 / CPU 有效 | 作为普通主机使用会更简单 | 用于 Hyper-V 主机 |
| EEE / Green Ethernet | 省电用的 Low-Power Idle | 耗电下降但可能有兼容性问题 | 耗电上升但可能更稳定 | 不是速度设置 |
| Selective Suspend | 网卡 idle 时低功耗化 | 耗电下降 | 唤醒稳定度可能提升 | 出问题时的候选切换项 |
| Wake on Magic Packet / Pattern Match | 睡眠中的唤醒条件 | 可以远程唤醒 | 可以避免非预期唤醒 | 有需要才启用 |
5. 连接与帧大小相关设置
5.1 Speed & Duplex
这是 关于连接速度与全双工 / 半双工协商 的设置。显示名称可能是 Speed & Duplex、Link Speed、Link Speed & Duplex 等等。
在做什么
Ethernet 中,网卡与对端设备会协商决定以什么速度、什么双工模式通信。
- Auto Negotiation
- 100 Mbps 全双工
- 1.0 Gbps 全双工
- 2.5 Gbps 全双工
- 10 Gbps 全双工
常见的是这些选项。
改了会怎样
设为 Auto
- 现代设备之间,原则上这样最稳定
- 1000BASE-T 以上,通常以 Auto 为前提
- 也更容易和 EEE、master/slave 的协商相互配合
手动固定
- 对旧交换机、强制固定对端的设备可能改善兼容性
- 但 只有一侧固定 / 一侧 Auto 的状态很容易出问题
- duplex mismatch 会造成降速、重传、异常延迟
实务基本方针
通常用 Auto 就够了。 「跑不到 1Gbps 所以固定成 1Gbps 全双工」听起来很有道理,实际上经常没抓到重点。
5.2 Jumbo Packet / Jumbo Frames
这是 使用比标准更大的 Ethernet 帧 的设置。显示名称可能是 Jumbo Packet、Jumbo Frames、Jumbo Packet Size 等等。
在做什么
一般的 Ethernet 通常以 MTU 1500 为前提运作。启用 Jumbo Frame 后,可以使用 9000 字节左右 的大帧。
不过这里名称的陷阱很多。
- 驱动程序有时会以
9014 Bytes这种 帧大小 显示 - 操作系统或工具有时以
MTU 9000这种 L3 视角 标示 - 交换机可能以 把 CRC 或 VLAN 标签也算进去 的方式计算
只把数字直接对比,非常容易踩坑。
改了会怎样
调大 / 启用
- 发送大量数据时数据包数量会减少
- 头部处理次数会减少
- CPU 使用率容易下降
- 另一方面,单个数据包占用的时间会变长
- 链路上任何一段不支持就会造成丢包或分片
改回标准 / 停用
- 兼容性最高
- 数据包数量会增加
- 大流量传输时 CPU / 头部开销容易增加
实务基本方针
Jumbo 只有在 端到端 全部一致时才有意义。
- 自己的网卡
- 对端的网卡
- 中间的交换机
- 如果经过 VLAN 或虚拟交换机,还包括它的开销
只要其中有一环还是 1500,不但没效果,反而会变成故障来源。
5.3 Gigabit Master / Slave Mode
这是 1000BASE-T 中,由哪一侧当 master、哪一侧当 slave 主导时钟 的设置。普通 PC 几乎不用调整。
基本方针
- 原则上用 Auto
- 只有在与特定老旧对端出现链路质量问题时才评估调整
- 没有厂商特别指示就不要当成性能调优的旋钮
5.4 Wait for Link 等链路状态相关设置
Wait for Link 这类设置,关系到 驱动程序是否要等自动协商成功后才报告链路状态。
Log Link State Event 则是把链路 up/down 记录到事件查看器,用于诊断。
基本方针
- 普通 PC 维持默认值即可
- 比起性能本身,影响的是开机时的显示或故障切换(failover)的诊断
- 不是优先调整的项目
6. 影响 CPU 负载、吞吐量、延迟的设置
这一部分看起来「最容易见效」。实际上也常常真的会见效,但生效的方向会明显分成两种。
6.1 Checksum Offload
把 IP / TCP / UDP 的 checksum 计算交给网卡处理的设置。
基本方针
- 原则上启用
- 想降低 CPU 就保留
- 抓包时看到的 checksum error,多半是 offload 造成的表面现象
- 为了排查兼容性问题暂时关闭是可以的
6.2 Large Send Offload (LSO) / TSO / Offload TCP Segmentation
把大块 TCP 发送数据由网卡切分成小帧的设置。
对什么有效
- 发送密集型的吞吐量
- 降低 CPU 使用率
- 较大的连续发送
基本方针
- 通常 启用
- 怀疑特定应用程序或驱动程序兼容性问题时,暂时停用看差异
6.3 Receive Segment Coalescing (RSC) / Large Receive Offload
把接收端多个 TCP 分段合并的设置。
对什么有效
- 接收端的吞吐量
- 降低 CPU 使用率
注意点
- 低延迟或以数据包为单位观察时可能不利
- 抓包或时序观察的解读会略有变化
基本方针
- 以接收吞吐量为重时就启用
- 要看小 request/response 的延迟时列为评估对象
6.4 UDP 的新式 offload(USO / URO)
较新的网卡和操作系统上,UDP 的收发也可能出现新的 offload 项目。
基本方针
- 即使有,也优先不要偏离默认值
- 只在驱动程序足够新、目标 workload 明确时才测量
- 排查故障时不要硬去调整它
6.5 Receive Side Scaling (RSS)
把接收处理分散到多个 CPU 的设置。多核环境下相当重要。
基本方针
- 多核环境原则上启用
- 单个 CPU 占用率异常高的症状先检查这里
- 面向 Hyper-V 或高吞吐场景时,也是主角之一
6.6 RSS Queues / RSS Processors / RSS Profile
决定 RSS 并行度的项目。
基本方针
- 从默认值开始
- 看到 CPU 使用率或队列不均衡后再增加
- 随意拉到最大,中断或 DPC 负载反而可能增加
6.7 Interrupt Moderation / Interrupt Moderation Rate
抑制中断频率、用 CPU 负载换延迟的设置。
倾向
- 高 / Adaptive → CPU 轻松但延迟容易增加
- 低 / Off → 延迟容易下降但 CPU / DPC 负载容易上升
基本方针
- 以默认 / Adaptive 为起点
- 在意小数据包的抖动(jitter)就评估 Low / Off
- 大流量传输时,多半保留默认值更合理
6.8 Receive Buffers / Receive Descriptors 与 Transmit Buffers / Transmit Descriptors
改变 ring / buffer 深度的设置。
生效方向
- 突发流量的耐受度
- 持续吞吐量
- 规避丢包
副作用
- 内存消耗增加
- 队列变深可能增加排队延迟
基本方针
- 看到丢包或缓冲区不足时再增加
- 不要随意拉到最大
6.9 Flow Control
关于 802.3x pause frame 收发的设置。
基本方针
- 想减少丢包时是候选项
- 但 pause 有时会把拥塞扩散到别处
- 低延迟场景要谨慎评估
- 需结合整体网络设计一起考虑
7. VLAN、QoS、虚拟化相关设置
7.1 Priority & VLAN / Packet Priority & VLAN / NDIS QoS
处理 802.1Q VLAN 和 802.1p Priority 的部分。
基本方针
- 真正要用 VLAN / QoS 时才需要关注它
- 单纯 access port 环境维持默认值即可
- 会自动附加标签的配置会让故障排查变困难,要小心
7.2 VMQ / VMMQ / SR-IOV
这是 Hyper-V 主机或虚拟化基础设施 上才有意义的设置。
基本方针
- 别当成普通台式机的调优手段
- 如果是 Hyper-V 主机,要连同 vSwitch 配置、队列分配、来宾端设置一起评估
- 只看单侧不太可能找到正解
7.3 RDMA / DCB / PFC 是另一个世界
这一带包含 SMB Direct、无损 Ethernet,是个相当独立的领域。
基本方针
- 和普通 1GbE / 2.5GbE 台式机调优要分开看
- 要结合厂商资料与交换机侧设计一起确认
8. 省电、睡眠、Wake on LAN 相关设置
8.1 Energy Efficient Ethernet (EEE) / Green Ethernet
为了省电,在链路 idle 时降低功耗的设置。
看法
- 不是让速度变快的设置
- 对省电有效
- 依据对端设备或线材条件,可能成为链路不稳定或降速到 100Mbps 的排查候选项
基本方针
- 一般用途维持默认值即可
- 链路不稳、被降速到 100Mbps、重视低延迟时,先列为切换候选项
8.2 Selective Suspend / Device Sleep / Standby 时的链路控制
简单说,是 idle 或睡眠时网卡要睡多深 的设置。
基本方针
- 笔记本从默认值开始
- 有唤醒问题时最先怀疑这里
- 设备控制用 PC 或 24/7 运行的场景,关掉反而更容易理解行为
8.3 Wake on Magic Packet / Wake on Pattern Match
这是让睡眠中的 PC 通过网络被唤醒的设置。
基本方针
- 需要 Wake on LAN 就启用 Magic Packet
- 不需要就关闭
- Pattern Match 只在需求明确时才开启
即使网卡这边打开了,还是可能唤不醒。要把 BIOS / UEFI 侧、电源管理选项卡侧一起对齐检查。
8.4 ARP Offload / NS Offload
让网卡在睡眠中代替主机做最低限度响应的设置。
基本方针
- 通常 启用 / 默认值 即可
- 在处理睡眠相关兼容性问题时常被临时调整
8.5 电源管理选项卡的设置
网卡的属性除了高级选项卡外,还有 电源管理 选项卡。这里不起眼但其实很重要。
常看的是这 3 项。
- 允许计算机关闭此设备以节约电源
- 允许此设备唤醒计算机
- 只允许幻数据包唤醒计算机
基本方针
- 唤醒不良先怀疑
允许计算机关闭此设备… - 想避免误唤醒就启用
只允许幻数据包唤醒计算机 - 根本不需要 Wake on LAN,所有与唤醒相关的选项都关掉即可
9. 其他常见但很少调整的设置
9.1 Network Address / Locally Administered Address
手动覆盖 MAC 地址 的设置。
基本方针
- 平时不动
- 不是性能设置
- 只有实验环境或特殊需求会用到
9.2 Adaptive Inter-Frame Spacing
相当老旧的设置。在现代交换式全双工 Ethernet 上不是主角。
基本方针
- 现代普通局域网维持默认值
- 只有旧设备或有厂商特别指示的特殊环境才调整
9.3 Header Data Split
主要面向服务器,把包头与负载分开处理以减轻 CPU 负担的这类设置。
基本方针
- 面向服务器 / 特定 workload
- 普通客户端维持默认值
9.4 Low Latency Interrupts
部分厂商会有 Low Latency Interrupts 之类的项目。
基本方针
- 有测量数据能证明有效才使用
- 不是靠感觉开启的项目
9.5 TCP Chimney Offload / IPsec Task Offload 等旧项目
较老的网卡或驱动程序还会看到这类项目。
基本方针
- 现在最好不要碰、不要用
- 不要被兼容性说法或旧文档带偏
10. 按用途的粗略指引
10.1 普通台式机 / 笔记本
- Speed & Duplex: Auto
- MTU / Jumbo: 1500 / 停用
- Checksum Offload: 启用
- LSO: 启用
- RSC: 启用
- RSS: 启用
- Interrupt Moderation: 默认 / Adaptive
- Buffers: 默认
- Flow Control: 默认
- EEE / Green Ethernet: 默认
- Selective Suspend: 默认
- Wake on LAN: 有需要才开
一句话总结,原则上不要随意改动默认值 就是基本姿势。
10.2 NAS / 备份 / 大流量复制
- Speed & Duplex: Auto
- Jumbo: 专用链路可以对齐时才评估
- Checksum Offload: 启用
- LSO: 启用
- RSC: 启用
- RSS: 启用
- RSS queues: 有必要就适当增加
- Receive / Transmit Buffers: 出现丢包就适当增加
- Interrupt Moderation: 默认 / 略高
- EEE: 重视稳定性就评估停用
大流量传输时,减少数据包数量、降低 CPU、避免队列不足 比较容易见效。
10.3 工业相机 / 设备控制 / 重视低延迟
- Speed & Duplex: 原则上 Auto,必要时配合对端固定
- Jumbo: 相机 / 网卡 / 交换机都能对齐时才评估
- Checksum Offload: 先启用
- LSO: 怀疑发送兼容性问题时暂时停用评估
- RSC: 重视低延迟或观察时列为停用候选
- Interrupt Moderation: 评估 Low / Off
- Buffers: 不要加太多
- Flow Control: 需评估 pause 的副作用
- EEE / Green Ethernet: 停用候选
- Selective Suspend / 电源管理: 停用候选
针对吞吐量优化的设置,不一定对低延迟有利。
10.4 Hyper-V 主机
- VMQ / VMMQ / SR-IOV: 依配置评估
- RSS: 对主机侧流量很重要
- RSC: 依 vSwitch 配置可能有限制
- QoS / VLAN: 配合 vSwitch 设计
- Flow Control / PFC: 需结合存储 / RDMA 设计一起考虑
这已经不是台式机调优,而是 虚拟化基础设施设计。
10.5 排查故障用的临时设置
排查故障时,回归单纯的世界是有效手段。
- Speed & Duplex: Auto
- MTU: 1500
- Jumbo: 停用
- EEE: 停用
- LSO: 暂时停用
- RSC: 暂时停用
- Interrupt Moderation: 默认或偏低
- Wake / power save: 不需要就停用
- 变更前的设置: 务必保存
排查故障时,让行为单纯化比性能优化更重要。
11. 各症状的第一个排查点
11.1 本应是 1Gbps / 2.5Gbps 却变成 100Mbps
优先检查顺序大致如下。
- 网线
- dock / USB 网卡 / 转接设备
- 交换机侧端口
- 更新驱动程序
- EEE / Green Ethernet
- 把 Speed & Duplex 改回 Auto
- 还是不行再尝试配合对端固定
直接手动固定是最后一步。
11.2 大流量传输很慢但 ping 正常
要看的是下面几项。
- Checksum Offload
- LSO
- RSC
- RSS
- Receive / Transmit Buffers
- Jumbo Frame(仅专用链路才考虑)
- 网卡统计中的丢包 / 错误
这属于 吞吐量类问题,Jumbo 或队列、offload 容易见效。
11.3 小 request/response 延迟大、在意抖动(jitter)
要看的是下面几项。
- Interrupt Moderation
- RSC
- EEE
- Flow Control
- Buffers 有没有加太多
在这个方向上,批处理类的优化,反而有可能让主观延迟变高。
11.4 睡眠唤醒后网卡消失 / 数秒无法连接
要看的是下面几项。
- Selective Suspend
- Device Sleep / Standby 相关设置
- 电源管理选项卡的
允许计算机关闭此设备… - dock / USB 网卡的固件
- wake 相关设置的组合
唤醒问题与其说是网卡本身的问题,多半是电源管理。
11.5 抓包看到大量 checksum error
在喊「线路坏了」之前,先确认下面几项。
- Checksum Offload 是否启用
- LSO 是否启用
- 抓包是在发送前还是在线路上
- 在别的主机或镜像端口看是否一样
本机抓包的 checksum error,很多情况下真的只是 offload 造成的表面现象。
11.6 只有 Hyper-V 的虚拟机慢 / CPU 分布不均
要看的不只是台式机视角的 RSS。
- VMQ / VMMQ
- SR-IOV
- vSwitch binding
- VLAN / QoS
- 主机侧 RSS 与虚拟机侧队列的分工
在虚拟化场景中,把谁在处理数据包画成图 会更容易理清思路。
12. 用 PowerShell 确认与变更时的实用备忘
12.1 先保存当前状态
变更前的备份很重要。
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Select-Object Name, DisplayName, DisplayValue, RegistryKeyword, RegistryValue |
Export-Csv .\nic-advanced-backup.csv -NoTypeInformation -Encoding UTF8
12.2 列出清单
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Sort-Object DisplayName |
Format-Table DisplayName, DisplayValue, RegistryKeyword -Auto
12.3 查看 RSS / RSC / 统计信息
Get-NetAdapterRss -Name "Ethernet"
Get-NetAdapterRsc -Name "Ethernet"
Get-NetAdapterStatistics -Name "Ethernet"
12.4 变更示例
实际的显示名称因网卡而异,所以先列出清单再变更。
# 示例: 变更 Jumbo Packet(值因网卡而异)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Jumbo Packet" `
-DisplayValue "9014 Bytes"
# 示例: 设置 RSS 的接收队列数
Set-NetAdapterRss -Name "Ethernet" -NumberOfReceiveQueues 4
12.5 Jumbo 的连通性验证
# 相当于标准 MTU 1500
ping <对端IP> -f -l 1472
# 相当于 MTU 9000
ping <对端IP> -f -l 8972
1472 与 8972 是扣除 IP / ICMP 头部后的负载大小。驱动程序界面上的 9014 Bytes 与这个 ping 的数字不会一致。
12.6 实务备忘
- 部分设置需要 停用 / 启用网卡 或重启
- DisplayName 可能是本地化过的
- 同一厂商,驱动版本不同,项目名称也可能不同
- 要用 PowerShell 做自动化时,先在实机上列出实际值 再写脚本更安全
13. 小结
Windows 网卡的高级设置光看项目名称都「很厉害」。 但实际上是个 在吞吐量、延迟、CPU、电源、兼容性中要取哪一项,答案就不同 的世界。
本文重点整理如下。
- Speed & Duplex 原则上用 Auto
- Jumbo 只在端到端对齐时才开
- Checksum / RSS / LSO / RSC 原则上以默认值为优先
- Interrupt Moderation 是吞吐量与延迟的权衡
- Buffers 只加刚好够用的量
- EEE / Selective Suspend / Wake 系是电源 / 唤醒的议题
- VMQ / SR-IOV 是 Hyper-V 的议题
- 老旧的 offload 项目别碰
而最重要的是以下 3 点。
- 确定要改善什么
- 一次只改一项
- 用数据对比变更前后
网卡设置不是魔法速度开关。 但只要目的对了就能有效果。反之目的错了,也会相当忠实地产生反效果。
14. 参考资料
以下是撰写本文时作为基础参考的官方资料 / 厂商资料。 Windows 与网卡驱动程序的用语变动较多,最终仍建议结合 自己网卡的驱动名称与版本 确认才安全。
- Microsoft Learn: NIC advanced properties
- Microsoft Learn: Network Adapter Performance Tuning in Windows Server
- Microsoft Learn: Hardware Only (HO) features and technologies
- Microsoft Learn: Overview of Single Root I/O Virtualization (SR-IOV)
- Microsoft Learn: Standardized INF Keywords for NDIS QoS
- Microsoft Learn: Standardized INF Keywords for Power Management
- Microsoft Learn: Setting RSS parameters
- Microsoft Learn: Overview of receive segment coalescing
- Microsoft Learn: How to optimize network adapter power management settings
- Microsoft Learn: Deprecated networking features in Windows Server
- Intel Support: Advanced Settings for Intel Ethernet Adapters
- Intel Support: 速度固定、Jumbo、Interrupt Moderation、EEE、WoL 等建议以网卡型号对应的支持文档来确认,会更安全
相关文章
共享相同标签的最新文章。可以围绕相近的主题进一步加深理解。
Windows 什么时候需要管理员权限 - UAC、保护区域与设计上的辨别方式
从边界与存储位置的角度,整理 Windows 什么时候真正需要管理员权限:UAC、保护区域、HKLM、服务、驱动、防火墙。同时说明 per-user 与 per-machine 的差异,以及把管理员处理拆成独立 EXE、服务或任务的设计取舍,帮读者判断该不该提升权限。
把 Windows 的「处理器计划」改成「后台服务」会发生什么 - 整理 quantum、优先级提升、P-Core/E-Core
整理把 Windows 的「处理器计划」切到「后台服务」时,到底改变的是哪一层;从 quantum、前台偏好、优先级提升,一路接到 Windows 11 hybrid CPU 上 QoS 与 P-Core/E-Core 的选择,并区分什么情况真的有效、什么情况其实是 DPC...
在 Windows 环境下减少 Codex 乱码事故的最佳实践 - 先把『指示方式』钉住,再谈环境整备
本文整理在 Windows 上让 Codex 安全处理日文文件的指示原则:读文件前先确认 encoding 与 BOM,疑似乱码禁止臆测保存,现有文件维持原状,仅新建采用 UTF-8,并在写入后重新读取代表性日文行验证,把规则沉淀进 AGENTS.md 以减少事故。
Windows Forms、WPF、WinUI 该怎么选 - 新建项目、存量资产、发布、UI 表现力判断表
从存量资产的规模、界面是表单为主还是需要表现力、现代 Windows UI 是否是产品刚需、发布与运维怎么落地这四个角度,整理 WinForms、WPF、WinUI 该怎么选的判断表,并提醒只想用 Windows App SDK 不必全面迁移到 WinUI。
Windows 应用程序不要把敏感信息以明文存进配置文件的最佳实践
本文整理 Windows 桌面应用保存连接凭证或 API Token 时的实务做法,说明为什么 DPAPI 与 ProtectedData 比明文或自制加密更能切断「文件外泄即等于敏感信息外泄」这条链条,并对比 CurrentUser 与 LocalMachine 的适用场...
常见问题
汇总了咨询这一主题时常见的问题。
- Interrupt Moderation(中断抑制)是什么?要怎么设置?
- Interrupt Moderation 是抑制网卡中断频率、用 CPU 负载换延迟的设置,本质上是吞吐量与延迟之间的拉锯。设高或设为 Adaptive 时 CPU 会比较轻松,但延迟容易增加;设低或关闭时延迟容易下降,但 CPU 与 DPC 负载会上升。实务上的基本方针是以默认值或 Adaptive 为起点,只有在意小数据包的延迟或抖动(jitter)时,才评估 Low 或 Off;大流量传输的场景多半保留默认值更合理。
- Jumbo Packet(Jumbo Frames)应该开启吗?
- 只有在端到端(end-to-end)全部对得上时才有意义,包括自己的网卡、对端的网卡、中间的交换机,以及 VLAN 或虚拟交换机的开销。只要路径上有一段还是 MTU 1500,不但没效果,反而会造成丢包或分片,成为故障来源。一般台式机或笔记本建议维持 1500、停用 Jumbo;只有 NAS 或备份等专用链路能全部对齐时才值得评估。
- 网卡的高级设置全部开启会更快吗?
- 不会。网卡高级设置是要先在吞吐量、延迟、CPU、耗电、兼容性中确定优先项,再逐项调整的地方。Checksum Offload、RSS、LSO、RSC 原则上保持启用或默认值即可,随意关闭反而会白白浪费 CPU;EEE 或 Green Ethernet 是省电设置,不是让速度变快的设置。实务上的基本姿势是一次只改一项,把变更前的设置记录下来,用数据对比变更前后的差异。
- 网络连接速度只有 100Mbps,该怎么排查?
- 优先顺序是先怀疑物理层与对端设备,而不是急着改网卡设置。建议依次检查:网线、扩展底座(dock)或 USB 网卡等转接设备、交换机侧端口、更新驱动程序、EEE / Green Ethernet 设置,然后把 Speed & Duplex 改回 Auto。直接手动固定为 1Gbps 全双工是最后的选项,因为只有一侧固定、另一侧 Auto 的状态很容易造成 duplex mismatch(双工不匹配),反而引起降速与重传。
作者简介
本文作者的个人简介页面。
Go Komura
小村软件有限公司 代表
以 Windows 软件开发、技术咨询与故障排查为中心,擅长难以复现的故障调查,以及既有资产仍在运行的项目。