Windows 中 NIC 詳細設定一次整理 - Jumbo Packet、RSS、LSO、RSC、Flow Control、EEE、Wake on LAN 到底要怎麼設
· 小村 豪 · Windows, 網路, NIC, Ethernet, 效能調校, Windows 開發
Windows 的 NIC 在 [進階] 索引標籤上,排了一堆看起來很陌生的字眼。
Jumbo Packet、Large Send Offload、Interrupt Moderation、Receive Side Scaling、Flow Control、Energy Efficient Ethernet。光看名字會想把全部都開起來,但實際上 要以什麼為優先,答案會完全不一樣。
- 是想提升大量傳輸的吞吐量嗎
- 是想把小封包的延遲壓低嗎
- 是想降低 CPU 使用率嗎
- 是想讓睡眠喚醒和 Wake on LAN 穩定下來嗎
- 是想分離驅動程式或交換器的相容性問題嗎
這一層如果沒釐清就「先全部開起來」「先給他個 Jumbo 9014」「慢就固定在 1Gbps Full」的話,相當正常地會出事。
本文主要針對 Windows 10 / 11 / Windows Server 的有線 Ethernet 介面卡,整理在實務中動到 NIC 詳細設定時的思考方式。
設定的意義、把值調高 / 調低 / 開啟 / 關閉時容易發生什麼事、在什麼情境下才值得動,整理成可以一眼掃完的內容。
另外,NIC 的顯示名稱與可選項 會因廠商與驅動程式而差異很大。
Jumbo Packet 有時會顯示成 Jumbo Frames、Receive Buffers 會變成 Receive Descriptors、Priority & VLAN 會變成 Packet Priority & VLAN。本文會把意思相近的項目歸在一起討論。
1. 先說結論
先把實務上比較難錯的結論放前面。
- Speed & Duplex 原則 Auto。遇到降速到 100Mbps 的問題時,直接硬固定成
1.0 Gbps Full Duplex是最後的選項。 - Checksum Offload / RSS / LSO / RSC 原則保持啟用或預設值。亂關一通反而容易白白吃掉 CPU。
- Jumbo Packet 只在 end-to-end 全部都對得上時才用。只有 NIC 設 9014,中途路徑還是 1500,就是個陷阱。
- Interrupt Moderation 是 throughput 與 latency 的拔河。設高 CPU 會輕鬆,但延遲會增加。
- Flow Control 有時可以減少 drop,但也可能把壅塞擴散開。
- EEE / Green Ethernet / Selective Suspend 是省電設定,不是讓你變快的設定。
- VMQ / SR-IOV 是 Hyper-V 主機用的,不是讓一般桌機變快的魔法。
- Wake on Pattern Match 很容易變成非預期喚醒的原因,所以只要想要 Wake on LAN,靠 Magic Packet 比較安全。
- TCP Chimney Offload 之類的老項目,現在就別碰 比較好。
簡單說,NIC 詳細設定不是「看起來很強的就全部開起來」的地方。
是 要取吞吐量、延遲、CPU、耗電、相容性中的哪一項 先決定好,再一項一項動的地方。
2. 在哪裡看設定
2.1 從 GUI 看
從網路連線進入
- 執行
ncpa.cpl - 在目標介面卡上按右鍵
- 內容 → 設定
- 進階 (Advanced) 索引標籤
從裝置管理員進入
- 裝置管理員
- 網路介面卡
- 對目標 NIC 按右鍵 → 內容
- 進階 索引標籤
這裡排列的項目,就是本文的主角。
不過 電源管理索引標籤的設定 在實務上影響也不小,後半部會介紹。
2.2 用 PowerShell 看
用 PowerShell 比較容易一次列出目前的值,也方便在變更前做備份。
Get-NetAdapter
Get-NetAdapterAdvancedProperty -Name "Ethernet" |
Sort-Object DisplayName |
Format-Table DisplayName, DisplayValue, RegistryKeyword, RegistryValue -Auto
部分 NIC 的 RegistryKeyword 會是標準化的名稱,會看到像 *RSS、*VMQ、*SRIOV、*EEE 這樣的字串。
但是 DisplayName 與 DisplayValue 會因驅動程式而異。要寫變更腳本時,先在實機上列出一遍比較安全。
3. 動之前的大原則
動 NIC 設定前,如果少了這一層,通常會掉進泥沼。
3.1 先決定「要改善什麼」
同樣一句「網路很慢」,內容可能完全不同。
- 大檔案複製慢
→ throughput、RSS、RSC、LSO、Jumbo、緩衝區 - 小的 request/response 卡頓
→ Interrupt Moderation、RSC、EEE、佇列深度 - CPU 高
→ offload、RSS、RSC、中斷 - 睡眠喚醒後怪怪的
→ Selective Suspend、電源管理、WoL - 偶爾斷線 / 降速到 100Mbps
→ 網路線、對端設備、Speed & Duplex、EEE、驅動程式
目的不同卻動同樣的設定,別說改善,反而可能惡化。
3.2 先懷疑實體層與對端設備
有很多問題不是 NIC 設定可以修好的。
- 網路線不良
- 交換器 / 路由器 / dock 的相容性
- 舊的 firmware
- USB NIC 的供電不足
- 連接埠側的錯誤
- 封包遺失或重傳
特別是 降到 100Mbps、Link flap、只有大量傳輸壞掉 這類症狀,先看實體與對端比較快。
3.3 一次只改一個項目
Jumbo、LSO、RSC、RSS、EEE 一次全改下去,等會要分析什麼生效了會完全搞不清楚。
把變更前的設定寫下來,一次動一項 再量變化,這才是基本姿勢。
3.4 決定要量什麼
至少這些數字是要看的。
- 連線速度(1G / 2.5G / 10G 等)
- 吞吐量
- 延遲
- CPU 使用率
- NIC 統計(drop / error / buffer shortage)
- 睡眠喚醒的穩定度
設定變更要看的不只是體感,用數字比對比較有說服力。
4. 主要設定一覽表
先放一張可以一次看完每個設定角色的表格。
| 設定 | 在做什麼 | 調高 / 啟用後容易發生 | 調低 / 停用後容易發生 | 基本方針 |
|---|---|---|---|---|
| Speed & Duplex | 連線速度與 duplex 的協商 / 固定 | 配合舊對端可能接得起來,但不一致時會 duplex mismatch 或降速 | 回到 Auto 在現代設備間較穩定 | 原則 Auto |
| Jumbo Packet / Jumbo Frames | 使用比 MTU 更大的 frame | 大量傳輸時 CPU 與 header overhead 容易下降 | 相容性最高但封包數會增加 | 只在專用路徑且 end-to-end 一致時才用 |
| Checksum Offload | 以 NIC 處理 IP / TCP / UDP 的 checksum | CPU 容易下降 | OS 側計算增加,CPU 容易上升 | 原則啟用 |
| LSO / TSO | 由 NIC 分割較大的 TCP 送信資料 | 對 send-heavy 的吞吐量與 CPU 效果好 | CPU 負擔會增加,但用於分離相容性問題很方便 | 通常啟用 |
| RSC / LRO | 在 NIC 側合併接收的 TCP segment | 對接收吞吐量與 CPU 效果好 | 粒度變細,在低延遲場景可能有利 | 以接收為重就啟用 |
| RSS | 將接收處理分散到多顆 CPU | 在 multi-core 下容易提升吞吐量 / scalability | 集中在單顆 CPU 容易塞車 | multi-core 原則啟用 |
| Interrupt Moderation | 抑制中斷頻率 | CPU 輕鬆但 latency 容易增加 | latency 下降但 CPU / DPC 負載容易上升 | 以預設 / Adaptive 當起點 |
| Receive / Transmit Buffers | Ring / Buffer 深度 | 對 burst 耐受度與 sustained throughput 有效 | 記憶體減少但對 drop 弱 | 只在不夠時才增加 |
| Flow Control | 802.3x pause frame 的收送 | 可以減少 drop | 對 tail latency 有時反而較好 | 連同整個網路設計一起考慮 |
| Priority & VLAN | 802.1p / 802.1Q tag | 可以使用 VLAN / QoS | 以單純 L2 運作 | 有需要才用 |
| VMQ / SR-IOV | Hyper-V / 虛擬化用 NIC 輔助 | 對 VM throughput / CPU 有效 | 當一般主機使用會比較單純 | Hyper-V 主機用 |
| EEE / Green Ethernet | 省電用的 Low-Power Idle | 耗電下降但可能有相容性問題 | 耗電上升但可能更穩定 | 不是速度設定 |
| Selective Suspend | NIC idle 時低功耗化 | 耗電下降 | 喚醒穩定度可能提升 | 出問題時是候選切換項 |
| Wake on Magic Packet / Pattern Match | 睡眠中的喚醒條件 | 可以遠端啟動 | 可以避免非預期喚醒 | 有需要才啟用 |
5. 連線與 Frame 大小相關設定
5.1 Speed & Duplex
這是 關於連線速度與全雙工 / 半雙工協商 的設定。顯示名稱可能是 Speed & Duplex、Link Speed、Link Speed & Duplex 等等。
在做什麼
Ethernet 中,NIC 與對端設備會決定要以什麼速度、什麼 duplex 通訊。
- Auto Negotiation
- 100 Mbps Full Duplex
- 1.0 Gbps Full Duplex
- 2.5 Gbps Full Duplex
- 10 Gbps Full Duplex
常會出現這些選項。
改了會怎樣
設為 Auto
- 現代設備之間,原則上這樣最穩定
- 1000BASE-T 以上,通常以 Auto 為前提
- 也比較能和 EEE、master/slave 的協商整合
手動固定
- 對老交換器、對端強制固定的設備可能改善相容性
- 但 只有一邊固定 / 一邊 Auto 的狀態很容易出事
- duplex mismatch 會造成降速、重傳、異常延遲
實務基本方針
通常就 Auto 即可。
「跑不到 1Gbps 所以固定 1Gbps Full」看起來很帥,其實經常沒中重點。
5.2 Jumbo Packet / Jumbo Frames
這是 使用比標準更大的 Ethernet frame 的設定。顯示名稱可能是 Jumbo Packet、Jumbo Frames、Jumbo Packet Size 等等。
在做什麼
一般的 Ethernet 通常以 MTU 1500 為前提運作。啟用 Jumbo Frame 後,可以使用 9000 byte 前後 的大 frame。
不過這裡名稱陷阱很多。
- 驅動程式有時會以
9014 Bytes這種 frame size 顯示 - OS 或工具有時以
MTU 9000這種 L3 視角 標示 - 交換器可能以 CRC 或 VLAN tag 都算進去 的方式計算
只把數字並排比較,超常中雷。
改了會怎樣
調大 / 啟用
- 送大筆資料時封包數會減少
- header 處理次數會減少
- CPU 使用率容易下降
- 另一方面,單一封包佔用的時間會變長
- 路徑上任何一段不支援就會造成 drop 或 fragmentation
回到標準 / 停用
- 相容性最高
- 封包數會增加
- 大量傳輸時 CPU / header overhead 容易增加
實務基本方針
Jumbo 只有在 end-to-end 全部一致時才有意義。
- 自己的 NIC
- 對端的 NIC
- 中間的交換器
- 有經過 VLAN 或虛擬交換器的話,包含它的 overhead
只要其中有一個還是 1500,不但沒效果,反而會變成故障來源。
5.3 Gigabit Master / Slave Mode
這是 1000BASE-T 中,由哪一邊當 master、哪一邊當 slave 主導 clock 的設定。一般 PC 幾乎不用動。
基本方針
- Auto 為原則
- 只在和特定老對端出現 link quality 問題時才評估
- 沒廠商特別指示就不當成效能調校的旋鈕
5.4 Wait for Link 等 Link 狀態相關設定
Wait for Link 這類設定,關係到 驅動程式是否要等 auto negotiation 成功後才回報 link 狀態。
Log Link State Event 則是把 link up/down 記到事件檢視器,用於診斷。
基本方針
- 一般 PC 維持預設即可
- 比起效能本身,影響的是開機時的顯示或 failover 的診斷
- 不是優先動的項目
6. 影響 CPU 負載、吞吐量、延遲的設定
這個區段看起來「最容易生效」。實際上也常常真的會生效,但生效的方向會明顯分成兩種。
6.1 Checksum Offload
把 IP / TCP / UDP 的 checksum 計算交給 NIC 處理的設定。
基本方針
- 原則啟用
- 想降 CPU 的話就保留
- capture 上看到的 checksum error,多半是 offload 造成的外觀問題
- 為了分離相容性問題暫時關掉是可以的
6.2 Large Send Offload (LSO) / TSO / Offload TCP Segmentation
把大的 TCP 送信資料由 NIC 切成小 frame 的設定。
對什麼有效
- send-heavy 的吞吐量
- 降低 CPU 使用率
- 較大的連續送信
基本方針
- 通常 啟用
- 懷疑特定應用程式或驅動程式相容時,暫時停用看差異
6.3 Receive Segment Coalescing (RSC) / Large Receive Offload
把接收端多個 TCP segment 合併的設定。
對什麼有效
- 接收端的吞吐量
- 降低 CPU 使用率
注意點
- 低延遲或以封包單位觀察時可能不利
- capture 或時序觀察的解讀會稍微改變
基本方針
- 以接收吞吐量為重就啟用
- 要看小 request/response 的 latency 時列為評估對象
6.4 UDP 的新式 offload(USO / URO)
較新的 NIC 和 OS 上,UDP 的收送也可能出現新的 offload 項目。
基本方針
- 就算有,優先不要偏離預設
- 只在驅動程式夠新、目標 workload 明確時才測量
- 故障排除時不要硬動它
6.5 Receive Side Scaling (RSS)
把接收處理分散到多顆 CPU 的設定。multi-core 環境下相當重要。
基本方針
- multi-core 原則啟用
- 單顆 CPU 黏住跑的症狀先檢查這裡
- Hyper-V 或 high-throughput 前,也是主角之一
6.6 RSS Queues / RSS Processors / RSS Profile
決定 RSS 並行度的項目。
基本方針
- 從預設值開始
- 看到 CPU 使用率或 queue 偏斜後再加
- 隨便拉到最大,中斷或 DPC 負載反而可能增加
6.7 Interrupt Moderation / Interrupt Moderation Rate
抑制中斷頻率,用 CPU 負載換 latency 的設定。
傾向
- 高 / Adaptive
→ CPU 輕鬆但 latency 容易增加 - 低 / Off
→ latency 容易下降但 CPU / DPC 負載容易上升
基本方針
- 以預設 / Adaptive 為起點
- 在意小封包的 jitter 就評估 Low / Off
- 大量傳輸時,多半保留預設較自然
6.8 Receive Buffers / Receive Descriptors 與 Transmit Buffers / Transmit Descriptors
改變 ring / buffer 深度的設定。
生效方向
- burst 耐受度
- sustained throughput
- 迴避 drop
副作用
- 記憶體消耗增加
- queue 變深可能增加排隊延遲
基本方針
- 看到 drop 或 buffer shortage 時再增加
- 不要隨便拉到最大
6.9 Flow Control
關於 802.3x pause frame 收送的設定。
基本方針
- 想減少 drop 時是候選
- 但 pause 有時會把壅塞擴散到別處
- 低延遲情境要謹慎評估
- 要和整個網路設計一起考慮
7. VLAN、QoS、虛擬化相關設定
7.1 Priority & VLAN / Packet Priority & VLAN / NDIS QoS
處理 802.1Q VLAN 和 802.1p Priority 的區段。
基本方針
- 真的要用 VLAN / QoS 時才意識到它
- 單純 access port 環境維持預設即可
- 會擅自附上 tag 的組態會讓故障分離變困難,要小心
7.2 VMQ / VMMQ / SR-IOV
這是 Hyper-V 主機或虛擬化基礎架構 上才有意義的設定。
基本方針
- 別當成一般桌機調校處理
- Hyper-V 主機的話,要連同 vSwitch 組態、queue 指派、客體端設定一起評估
- 只看單邊不太可能找到正解
7.3 RDMA / DCB / PFC 是另一個世界
這一帶包含 SMB Direct、lossless Ethernet,是個相當獨立的世界。
基本方針
- 和一般 1GbE / 2.5GbE 桌機調整要分開看
- 要連同廠商資料與交換器側設計一起確認
8. 省電、睡眠、Wake on LAN 相關設定
8.1 Energy Efficient Ethernet (EEE) / Green Ethernet
為了省電,在 link idle 時降低耗電的設定。
看法
- 不是讓速度變快的設定
- 對耗電有效
- 依對端設備或線材條件,可能成為 link 不穩或 100Mbps downshift 的分離候選
基本方針
- 一般用途維持預設即可
- Link 不穩、被降到 100Mbps、重視低延遲時,先列為切換候選
8.2 Selective Suspend / Device Sleep / Standby 時的 link 控制
簡單說,是 idle 或睡眠時 NIC 要睡多深 的設定。
基本方針
- 筆電從預設值開始
- 有喚醒問題時最先懷疑這裡
- 設備控制用 PC 或 24/7 運用,關掉反而容易理解
8.3 Wake on Magic Packet / Wake on Pattern Match
這是讓睡眠中的 PC 透過網路被喚醒的設定。
基本方針
- 需要 Wake on LAN 就啟用 Magic Packet
- 不需要就關
- Pattern Match 只在需求明確時才開
就算 NIC 這邊開了,還是可能叫不醒。要把 BIOS / UEFI 側、電源管理索引標籤側一起對齊看。
8.4 ARP Offload / NS Offload
讓 NIC 在睡眠中代替主機做最低限度回應的設定。
基本方針
- 通常 啟用 / 預設值 即可
- 在處理睡眠相關相容性時常被暫時碰一下
8.5 電源管理索引標籤的設定
NIC 的內容除了進階索引標籤外,還有 電源管理 索引標籤。這裡不起眼但其實重要。
常看的是這 3 項。
- 允許電腦關閉這個裝置以節省電源
- 允許這個裝置喚醒電腦
- 僅允許 magic packet 喚醒電腦
基本方針
- 喚醒不良先懷疑
允許電腦關閉這個裝置... - 想避免誤喚醒就啟用
僅允許 magic packet... - 根本不需要 Wake on LAN,所有 wake 相關都關即可
9. 其他常見但動到機會少的設定
9.1 Network Address / Locally Administered Address
手動覆寫 MAC 位址 的設定。
基本方針
- 平常不動
- 不是效能設定
- 只有實驗環境或特殊需求會用到
9.2 Adaptive Inter-Frame Spacing
相當老牌的設定。在現代 switched full-duplex Ethernet 上不是主角。
基本方針
- 現代一般 LAN 維持預設
- 只有老設備或特殊環境有廠商指示時才動
9.3 Header Data Split
主要針對伺服器,把 packet header 與 payload 分開處理以減輕 CPU 負擔的這類設定。
基本方針
- 伺服器向 / 特定 workload 向
- 一般用戶端維持預設
9.4 Low Latency Interrupts
部分廠商會有 Low Latency Interrupts 之類的項目。
基本方針
- 有測量能贏才使用
- 不是靠感覺開啟的項目
9.5 TCP Chimney Offload / IPsec Task Offload 等舊項目
較老的 NIC 或驅動程式還會看到這類項目。
基本方針
- 現在就不要碰、不要用 才是正解
- 不要被相容性或舊文件帶偏
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: 有 drop 就稍微增加
- Interrupt Moderation: 預設 / 稍高
- EEE: 重視穩定就評估停用
大量傳輸時,減少封包數、減少 CPU、迴避 queue 不足 比較容易見效。
10.3 工業相機 / 設備控制 / 重視低延遲
- Speed & Duplex: 原則 Auto。必要時配合對端固定
- Jumbo: 相機 / NIC / 交換器都對齊時評估
- Checksum Offload: 先啟用
- LSO: 懷疑送信相容性時暫時停用評估
- RSC: 低延遲或以觀察為優先時列為停用候選
- Interrupt Moderation: 評估 Low / Off
- Buffers: 不要加太多
- Flow Control: 需評估 pause 的副作用
- EEE / Green Ethernet: 停用候選
- Selective Suspend / 電源管理: 停用候選
吞吐量最佳化的設定,不一定對 low latency 有利。
10.4 Hyper-V 主機
- VMQ / VMMQ / SR-IOV: 依組態評估
- RSS: 對主機側流量重要
- RSC: 依 vSwitch 組態可能有限制
- QoS / VLAN: 與 vSwitch 設計搭配
- Flow Control / PFC: 連同儲存 / RDMA 設計一起考慮
這已經不是 desktop tuning,而是 虛擬化基礎架構設計。
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 NIC / 轉接器
- 交換器側連接埠
- 更新驅動程式
- EEE / Green Ethernet
- 把 Speed & Duplex 回到 Auto
- 還是不行再試著配合對端固定
直接手動固定是最後一步。
11.2 大量傳輸很慢但 ping 正常
要看的是下列幾項。
- Checksum Offload
- LSO
- RSC
- RSS
- Receive / Transmit Buffers
- Jumbo Frame(專用路徑才考慮)
- NIC 統計的 drop / error
這屬於 吞吐量系的問題,Jumbo 或 queue、offload 容易生效。
11.3 小 request/response 延遲大、在意 jitter
要看的是下列幾項。
- Interrupt Moderation
- RSC
- EEE
- Flow Control
- Buffers 有沒有加太多
在這個區段,批次處理系的最佳化,反而有可能讓體感延遲變高。
11.4 睡眠喚醒後 NIC 消失 / 數秒無法連線
要看的是下列幾項。
- Selective Suspend
- Device Sleep / Standby 相關設定
- 電源管理索引標籤的
允許電腦關閉這個裝置... - dock / USB NIC 的 firmware
- wake 相關設定的組合
喚醒問題與其說是 NIC 本身,多半是電源管理。
11.5 packet capture 看到大量 checksum error
在喊「線路壞了」之前,先確認下列幾項。
- Checksum Offload 是否啟用
- LSO 是否啟用
- capture 是在送信前還是在 wire 上
- 在別的主機或 mirror port 看是否一樣
本機 capture 的 checksum error,真的很常只是 offload 造成的外觀。
11.6 只有 Hyper-V 的 VM 慢 / CPU 偏斜
要看的不只是桌機視角的 RSS。
- VMQ / VMMQ
- SR-IOV
- vSwitch binding
- VLAN / QoS
- 主機側 RSS 與 VM 側 queue 的分工
虛擬化中,把誰在處理 packet 畫成圖 會比較好整理。
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 變更範例
實際的顯示名稱因 NIC 而異,所以先列出清單再變更。
# 範例: 變更 Jumbo Packet(值因 NIC 而異)
Set-NetAdapterAdvancedProperty -Name "Ethernet" `
-DisplayName "Jumbo Packet" `
-DisplayValue "9014 Bytes"
# 範例: 設定 RSS 的接收 queue 數
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 header 後的 payload。驅動程式 UI 的 9014 Bytes 與這個 ping 的數字不會一致。
12.6 實務備忘
- 部分設定需要 停用 / 啟用介面卡 或重啟
- DisplayName 可能是本地化過的
- 同一廠商,driver 版本不同,項目名稱也可能不同
- 要用 PowerShell 自動化時,先列出實機的值 再寫比較安全
13. 小結
Windows 的 NIC 詳細設定光看項目名稱全都「很強」。
但實際上是個 以吞吐量、延遲、CPU、電源、相容性中要取哪一個,答案就不同 的世界。
本文重點整理如下。
- Speed & Duplex 原則 Auto
- Jumbo 只在 end-to-end 對齊時才開
- Checksum / RSS / LSO / RSC 原則以預設為強
- Interrupt Moderation 是吞吐量與延遲的 trade-off
- Buffers 只加剛好的量
- EEE / Selective Suspend / Wake 系是電源 / 喚醒的議題
- VMQ / SR-IOV 是 Hyper-V 的議題
- 老 offload 項目別碰
而最重要的是以下 3 點。
- 決定要改善什麼
- 一次只改一項
- 用數字比對變更前後
NIC 設定不是魔法速度開關。
但只要目的對了就能有效果。反之目的錯了,會相當忠實地吃到反效果。
14. 參考資料
以下是撰寫本文時作為基礎參考的官方資料 / 廠商資料。
Windows 與 NIC 驅動程式的用語浮動很多,最終仍建議配合 自己的 NIC 的驅動名稱與版本 確認才安全。
- 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 等建議以 NIC 型號別的支援文章來確認比較安全
相關文章
共用相同標籤的最新文章。能以相近的主題延伸理解。
ClickOnce 是什麼 - 以實務視角整理機制、更新、適合場面・不適合場面
本文以實務視角整理 ClickOnce 是什麼,從 manifest、快取、更新、簽章的構造,到適合公司內部 .NET 桌面業務應用程式的案件與不適合 machine-wide 或 service、driver 等深度 OS 整合的案件,幫助讀者判斷是否採用並掌握 depl...
用 Windows 沙箱加速 Windows 應用程式開發的驗證 - 以實務向整理管理員權限問題、乾淨環境、權限不足・資源不足的重現
整理在 Windows 應用程式開發中如何運用 Windows Sandbox 加速驗證的實務做法。透過按情境分檔的 .wsb、唯讀輸入與專用 Outbox 寫入分離、在容器內另建標準使用者重現權限不足、以及降低記憶體和關閉 vGPU 製造資源不足偏向,把每次的乾淨環境準備...
Windows 的 DLL 名稱解析機制 - 以實務角度整理搜尋順序、Known DLLs、API set、SxS
從實務角度整理 Windows 的 DLL 名稱解析,說明 loader 在掃描檔案系統前會先處理 DLL redirection、API set、SxS、Known DLLs,並用 SetDefaultDllDirectories 與 LoadLibraryEx 旗標縮小...
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 技術主題
彙整 KomuraSoft LLC 關於 Windows 開發、故障調查與既有資產活用文章的主題中心。
故障調查 & 長期運行故障
整理間歇性故障、通訊診斷、長期運行當機、失敗路徑測試基礎的主題頁面。
作者檔案
本文作者的個人檔案頁面。
Go Komura
小村軟體有限公司 代表
以 Windows 軟體開發、技術諮詢與故障調查為中心,在難以重現的故障調查與既有資產仍在運作的專案上具有優勢。