虛擬化 SQL Server 硬體規劃:主機層面的三大核心投資
虛擬機(VM)是管理單元,實體主機是資源池。為 SQL Server 虛擬化選型硬體,順序是:**CPU → 記憶體 → 儲存**,且與實體部署邏輯不同。
1. CPU:追求「效能/瓦特」甜蜜點,而非最高主頻
- 4U 機架 > 刀片/1U/2U:同等預算下,4U 可塞更多插槽/核心,散熱/電源效率更好。
- 選擇 伺服器級處理器(Xeon Scalable/EPYC),支援大快取、多通道記憶體、RAS 功能。
- 避開「最高主頻」陷阱:多花 30% 買 +200 MHz,實際吞吐可能僅升 3%。鎖定 核心數 × 基準時脈 × 快取** 性價比最高的 SKU**。
- 規劃 VM vCPU:繁忙大型實例獨占一 VM(甚至跨 NUMA 節點);小型實例多對一 VM。避免過度配置 vCPU 導致 CPU Ready 時間飆升。
2. 記憶體:SQL Server 是記憶體吞噬者,超額配置需極謹慎
- Hypervisor 記憶體超額配置(Overcommit)常見 50%,但 SQL Server 會主動佔用所有可見記憶體**(Max Server Memory 設定前)**。
- 若 VM 設定 12 GB,SQL Server 會吃滿 12 GB,導致 Host 實體記憶體超額、氣球驅動/交換觸發,效能崩塌。
- 建議:關閉 SQL Server VM 的記憶體超額配置**,或嚴格限制超額比例 ≤ 10%,並依實際
Target Server Memory 監控值配置實體 RAM。
- 採購 ECC RDIMM/LRDIMM**,同廠商同批次,預留擴充插槽。
3. 儲存:SAN 為主,容錯 > 速度 > 容量
- 內部磁碟僅放 OS/系統資料庫(可做 RAID 1),使用者資料庫、記錄檔、tempdb、備份全上 SAN**。
- SAN 選型鐵律:RAID 10/RAID 50、多控制器、BBWC/FBWC、獨享前端埠、保證 IOPS/延遲 SLA**。
- 虛擬化層額外 I/O 開銷(VMDK/VHDX、快照、備份 API),SAN 效能需預留 30%+ 頭room**。
- 容量最後考慮:先滿足容錯與速度,不夠再加磁碟/擴充 LUN。
避坑速查表
| 錯誤做法 | 後果 | 正確做法 |
| 將現有實體 SQL 直接 P2V 到低配 VM | 效能暴跌 50%+ | 依工作負載重新評估 vCPU/vRAM/vDisk,分散部署 |
| 所有 SQL VM 集中同一主機,記憶體超額 100% | 氣球驅動狂啟,查詢隨機卡頓 | 關閉超額或嚴格限制,跨主機分散 |
| tempdb 放在共用 SAN 低階 LUN | 並發查詢排隊、延遲飆升 | tempdb 獨享高階 LUN/本地 NVMe(若支援) |
| 用桌面級 SSD 做 SAN 快取 | 掉電資料遺失、壽命極短 | 企業級 eMLC/3D XPoint + 掉電保護 |
結語
虛擬化 SQL Server 不是「省鐵」,而是「彈性調度鐵」。主機 CPU 核心密度高、記憶體不超額、SAN 效能獨享有保證,三條底線守住,虛擬化才能發揮高可用、遷移、備份整合的紅利,否則只會換來無盡的效能調優噩夢。