Windows 网卡高级设置详解 - Jumbo Packet、RSS、LSO、RSC、Flow Control、EEE、Wake on LAN 到底怎么设置

· · Windows, 网络, 网卡, Ethernet, 性能调优, Windows 开发

Windows 网卡的 [高级] 选项卡 上,排列着一堆看起来很陌生的字眼。 Jumbo PacketLarge Send OffloadInterrupt ModerationReceive Side ScalingFlow ControlEnergy Efficient Ethernet。光看名字会想把全部都打开,但实际上 要以什么为优先,答案会完全不同。

  • 是想提升大流量传输的吞吐量吗
  • 是想把小数据包的延迟压低吗
  • 是想降低 CPU 使用率吗
  • 是想让睡眠唤醒和 Wake on LAN 稳定下来吗
  • 是想排查驱动程序或交换机的兼容性问题吗

这一层如果没先想清楚就「先全部打开」「先给它个 Jumbo 9014」「慢就固定在 1Gbps 全双工」,相当容易出问题。

本文主要针对 Windows 10 / 11 / Windows Server 的有线 Ethernet 网卡,整理在实务中调整网卡高级设置时的思路。 每项设置的含义、把值调高 / 调低 / 开启 / 关闭时容易发生什么、在什么场景下才值得调整,整理成可以一眼扫完的内容。

另外,网卡的显示名称与可选项 会因厂商与驱动程序而有很大差异Jumbo Packet 有时会显示为 Jumbo FramesReceive Buffers 会变成 Receive DescriptorsPriority & 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 查看

从网络连接进入

  1. 运行 ncpa.cpl
  2. 在目标网卡上点击右键
  3. 属性配置
  4. 高级 (Advanced) 选项卡

从设备管理器进入

  1. 设备管理器
  2. 网络适配器
  3. 对目标网卡点击右键 → 属性
  4. 高级 选项卡

这里列出的项目,就是本文的主角。 不过 电源管理选项卡的设置 在实务上影响也不小,后半部分会介绍。

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 网卡供电不足
  • 端口侧的错误
  • 丢包或重传

特别是 降到 100MbpsLink 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 & DuplexLink SpeedLink 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 PacketJumbo FramesJumbo 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
  • 只有在与特定老旧对端出现链路质量问题时才评估调整
  • 没有厂商特别指示就不要当成性能调优的旋钮

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

优先检查顺序大致如下。

  1. 网线
  2. dock / USB 网卡 / 转接设备
  3. 交换机侧端口
  4. 更新驱动程序
  5. EEE / Green Ethernet
  6. 把 Speed & Duplex 改回 Auto
  7. 还是不行再尝试配合对端固定

直接手动固定是最后一步

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

14728972 是扣除 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 点。

  1. 确定要改善什么
  2. 一次只改一项
  3. 用数据对比变更前后

网卡设置不是魔法速度开关。 但只要目的对了就能有效果。反之目的错了,也会相当忠实地产生反效果。

14. 参考资料

以下是撰写本文时作为基础参考的官方资料 / 厂商资料。 Windows 与网卡驱动程序的用语变动较多,最终仍建议结合 自己网卡的驱动名称与版本 确认才安全。

共享相同标签的最新文章。可以围绕相近的主题进一步加深理解。

常见问题

汇总了咨询这一主题时常见的问题。

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 软件开发、技术咨询与故障排查为中心,擅长难以复现的故障调查,以及既有资产仍在运行的项目。

返回博客列表