Hyper-V 第 2 代 VM 的硬體性能損失
我有以下配置:
- 使用 Hyper-V 安裝在裸機上的 Windows Server 2012 R2 作業系統。作業系統安裝在 RAID1 850 PRO 驅動器上。
- Windows Server 2012 R2 Guest OS Generation 2 VM 位於 Windows Storage Space Mirrored 950 PRO 驅動器上。
我使用 Crystal Disk 在 Windows Storage Space Mirrored 950 PRO 驅動器上執行了一些測試。這些是以下統計數據。
在裸機上測試時
Sequential Read (Q= 32,T= 1) : 4178.159 MB/s Sequential Write (Q= 32,T= 1) : 1504.286 MB/s Random Read 4KiB (Q= 32,T= 1) : 460.155 MB/s [112342.5 IOPS] Random Write 4KiB (Q= 32,T= 1) : 266.983 MB/s [ 65181.4 IOPS] Sequential Read (T= 1) : 2042.397 MB/s Sequential Write (T= 1) : 1500.305 MB/s Random Read 4KiB (Q= 1,T= 1) : 40.059 MB/s [ 9780.0 IOPS] Random Write 4KiB (Q= 1,T= 1) : 76.623 MB/s [ 18706.8 IOPS]
在 VM 中測試時
Sequential Read (Q= 32,T= 1) : 4635.549 MB/s Sequential Write (Q= 32,T= 1) : 1502.071 MB/s Random Read 4KiB (Q= 32,T= 1) : 181.225 MB/s [ 44244.4 IOPS] Random Write 4KiB (Q= 32,T= 1) : 110.272 MB/s [ 26921.9 IOPS] Sequential Read (T= 1) : 1624.129 MB/s Sequential Write (T= 1) : 1381.203 MB/s Random Read 4KiB (Q= 1,T= 1) : 24.528 MB/s [ 5988.3 IOPS] Random Write 4KiB (Q= 1,T= 1) : 34.563 MB/s [ 8438.2 IOPS]
我的隨機讀/寫性能下降了近 50%。我重新測試了幾次以確認值。這是可以預料的嗎?
首先,最好使用 DiskSPD 而不是其他任何東西。僅僅因為微軟在其內部 QA 過程中使用了 DiskSPD。
其次,這是 Hyper-V 的已知問題。它甚至在 Windows Server 2016 中以或多或少相同的方式存在。簡而言之,如果您的底層儲存具有非常低的延遲,通常會有 2 到 4 倍的 I/O 性能下降。您可以嘗試幾種解決方法來改善您的狀況:
**使用多個卷。**不要在單個虛擬磁碟或命名空間上分配多個 CSV,而是確保本地掛載點(如果您直接從 DAS 執行虛擬機)、CSV 或 SMB3 共享在不同的邏輯卷上結束!您必須擁有一個包含多個 VHD 文件或多個 VM 的 VM 才能以這種方式“聚合”組合性能。如果您有一個帶有單個附加 VHD 的 VM,則此方法顯然無濟於事。
**使用“中間人”。**這是列出的第一種方法中的一種增量改進。您可以獲得多個邏輯卷,在頂部封裝一些基於 Windows 的軟體定義儲存,並允許它為連接了單個 VHD 的單個 VM 聚合 I/O 性能。如果您執行單個 Oracle RAC 或 SQL Server VM,並且它正是您想要高 IOPS 的那個,則可能會發生這種情況。
**禁用 I/O 調度程序。**設置系統資料庫項…
“HKLM\SYSTEM\CurrentControlSet\Control\StorVSP\IOBalance\Enabled”
……歸零!PS不要忘記重新啟動,因為沒有任何變化。
這個可能會也可能不會。我們在 RAID0 中的一對三星 850 Pro SSD 上獲得了 ±20% 的提升。
希望有些東西對你有用。請為未來的潛伏者更新您的結果:)