Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Một số lần tôi gặp phải tình huống khi các tệp được sao chép từ / sang máy ảo trên máy chủ Hyper-V chạy Windows Server 2019 chậm hơn nhiều so với trong máy ảo có cùng cấu hình trên máy chủ chạy Windows Server 2016. Trong một số thử nghiệm, bài đọc / tốc độ ghi qua mạng vào VM trên Windows Server 2019 thấp hơn gần ba lần so với trên WS2016 (sao chép qua SMB, SSH / SCP đã được thử nghiệm). Trong bài viết này, tôi đã cố gắng mô tả một số phương pháp khác nhau để cải thiện hiệu suất mạng của máy ảo Hyper-V chạy trên Windows Server 2019 (và các bản dựng Windows 10 và 11 mới nhất).

Nhận phân đoạn cân bằng (RSC) trong Hyper-V vSwitch

Trước hết, bạn nên lưu ý Tiếp nhận hợp tác phân đoạn (RSC) tính năng đã xuất hiện trong Hyper-V trên Windows Server 2019/2022 (và Windows 10 1809+). Kết hợp phân đoạn nhận được sử dụng ở cấp chuyển mạch ảo (vSwitch). RSC cho phép giảm tải CPU và tăng thông lượng mạng bằng cách kết hợp nhiều phân đoạn TCP thành những phân đoạn lớn hơn . Hiệu suất mạng được cải thiện vì các phân đoạn lớn được xử lý nhanh hơn nhiều phân đoạn nhỏ hơn.

Trong các phiên bản Hyper-V trước (Windows Server 2016 / 2012R2), chỉ hỗ trợ chế độ Cân nhắc phân đoạn nhận phần cứng ở cấp NIC.

Nếu hỗ trợ RSC được bật, nó có thể dẫn đến mạng thêm trễ trong một số cấu hình phần cứng.

Sự cố xảy ra cả trong các phiên bản GUI đầy đủ của Windows Server 2019 và trong Windows Hyper-V Server miễn phí.

Theo mặc định, RSC được bật cho tất cả các vSwitch bên ngoài trên Windows Server 2019.

Bạn có thể kiểm tra xem RSC có được bật cho các công tắc ảo hay không bằng cách sử dụng lệnh:

Get-VMSwitch | Chọn-Đối tượng * RSC *

Bạn có thể tắt sử dụng RSC cho lưu lượng IPv4 trên bộ điều hợp mạng khách bằng lệnh sau:

Disable-NetAdapterRsc -Tên "Ethernet" -IPv4

Kiểm tra xem tốc độ sao chép trong Hyper-V VM có tăng lên không sau khi tắt RSC. Nếu tốc độ mạng được cải thiện, bạn có thể tắt RSC trên công tắc ảo mà máy ảo được kết nối.

Bạn có thể kiểm tra thông lượng mạng của mình bằng công cụ iperf.

Để tắt phần mềm RSC cho một công tắc ảo cụ thể, hãy chạy lệnh:

Set-VMSwitch -Tên vSwitchName -EnableSoftwareRsc $ false

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Bạn có thể bật / tắt RSC một cách nhanh chóng, nó sẽ không ảnh hưởng đến bất kỳ kết nối nào đang hoạt động.

Hoặc bạn có thể tắt hoàn toàn RSC trên máy chủ Windows của mình:

netsh int tcp set global rsc =disable

Chế độ hàng đợi máy ảo (VMQ) trong trình điều khiển bộ điều hợp mạng

Trong một số trường hợp, nếu VMQ (Hàng đợi Máy ảo) được bật trong trình điều khiển bộ điều hợp mạng của máy chủ Hyper-V vật lý, nó có thể dẫn đến hiệu suất mạng kém trong máy ảo Hyper-V. VMQ là một tính năng phần cứng và nếu nó không được phần cứng của bạn hỗ trợ nhưng được bật trong trình điều khiển, nó có thể dẫn đến mất gói và tăng độ trễ mạng. Sự cố là điển hình đối với bộ điều hợp mạng Broadcom Gigabit và xảy ra trong tất cả các phiên bản Hyper-V (Windows Server 2012 R2 / 2016/2019).

VMQ được thiết kế để cải thiện hiệu suất mạng bằng cách chuyển tiếp trực tiếp các gói từ bộ điều hợp mạng vật lý tới các máy ảo.

Bạn có thể tắt VMQ trong các thuộc tính của trình điều khiển bộ điều hợp mạng của mình.

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Hoặc bạn có thể hiển thị danh sách bộ điều hợp mạng có hỗ trợ VMQ và trạng thái của chúng bằng PowerShell:

Get-NetAdapterVmq

Để tắt VMQ cho một NIC cụ thể, hãy chạy lệnh bên dưới (bộ điều hợp mạng sẽ không khả dụng trong vài giây):

Set-NetAdapterVmq -Tên “NICName” -Enabled $ False

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Sau khi tắt VMQ, tốt hơn nên khởi động lại máy chủ và kiểm tra hiệu suất mạng.

Đảm bảo rằng các chính sách giới hạn băng thông QoS bị tắt trong Windows.

Tối ưu hóa cài đặt TCP cho Hyper-V trên Windows Server 2019

Lưu cài đặt TCP hiện tại trên máy chủ Hyper-V của bạn và áp dụng cài đặt mới sẽ làm cho cài đặt TCP trong Windows Server 2019 gần giống với cài đặt của Windows Server 2016.

Lưu cài đặt hiện tại:

Get-NetTCPSetting -SettingName Datacenter, DatacenterCustom, InternetCustom, Internet | select SettingName, CongestionProvider, CwndRestart, ForceWS | Export-csv c:\ backup \ ws2019_network_stack_settings_nettcp_backup.csv

Theo mặc định trong Windows Server 2019 và Windows 10 1709+, CUBIC thực thi TCP được sử dụng. Thuật toán này được tối ưu hóa cho các mạng tốc độ cao với độ trễ cao (nó cũng được sử dụng theo mặc định trong nhân Linux 2.6.19 và mới hơn).

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Chỉ áp dụng các cài đặt sau trong Windows Server 2019 hoặc Hyper-V 2019.

Áp dụng cài đặt NetTCP mới cho mạng LAN:

Set-NetTCPSetting -SettingName DatacenterCustom, Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom, Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom, Datacenter -ForceWS Tắt

Đối với mạng WAN:

Set-NetTCPSetting -SettingName InternetCustom, Internet -CongestionProvider CTCP
Set-NetTCPSetting -SettingName InternetCustom, Internet -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName InternetCustom, Internet -ForceWS Disabled

Tắt các phương pháp tối ưu hóa mạng RSS và RSC của mạng ở cấp ngăn xếp TCP:

netsh int tcp show global
netsh int tcp set global RSS =Disabled
netsh int tcp set global RSC =Disabled

hoặc ở cấp độ NIC:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Nhận tỷ lệ bên" -DisplayValue "Đã tắt" –NoRestart

Tắt vRSS cho tất cả các máy ảo:

Get-VM | Set-VMNetworkAdapter -VrssEnabled $ FALSE

Tắt tải trọng gửi lớn (LSO) trên NIC:
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Khởi động lại-NetAdapter

Bạn cũng có thể tắt các tùy chọn này trong tab Nâng cao của thuộc tính bộ điều hợp mạng của mình:

  • Sắp xếp phân đoạn thu âm (IPv4 / IPv6) =Đã tắt
  • Tải trọng gửi lớn V2 (IPv4 / IPv6) =Đã tắt

Hiệu suất mạng kém trên máy ảo Hyper-V trong Windows Server 2019

Các cài đặt ngăn xếp TCP này sẽ làm cho cài đặt giao thức mạng của Windows Server 2019 tương tự như cài đặt của các phiên bản Windows Server trước.