VMware vSphere 6.0效能調校最佳實務

本文將以最新的VMware vSphere 6.0為例,從底層實體伺服器的規劃說起,然後講解如何選擇CPU、Memory、Storage、Network等虛擬化資源四大元件,並逐步探討ESXi虛擬化平台和VM虛擬主機,以便讓建構硬體效能最佳化。

在選擇實體伺服器的CPU處理器時,應挑選支援MMU(Memory Management Unit)硬體輔助虛擬化技術。簡單來說,支援MMU硬體輔助虛擬化技術的CPU處理器,在虛擬化環境運作時將會透過TLB(Translation Lookaside Buffer)機制,讓VMM(ESXi)採用「陰影分頁技術(Shadow Page Tables)」機制,將VM虛擬機器的記憶體區塊對應到實體伺服器的記憶體區塊,有效地減少vSphere ESXi虛擬化平台維護實體/虛擬記憶體區塊的工作負載,進而提升主機整體工作效率。

·Intel處理器:EPT(Extended Page Tables),如圖3所示。
·AMD處理器:NPT(Nested Page Tables)或RVI(Rapid Virtualization Indexing)


▲圖3 Intel VT-x硬體輔助虛擬化技術運作示意圖。(圖片來源:Intel Focus Security Conference – Hardware-Accelerated Behavioral Memory Analysis)

I/O—硬體輔助虛擬化(VT-d/AMD-Vi)

最後,則是解決I/O快速對應且減少耗損的難題。因此,在選擇實體伺服器的CPU處理器時,應挑選支援I/O MMU硬體輔助虛擬化技術的型號。

簡單來說,支援I/O MMU硬體輔助虛擬化技術的CPU處理器,在虛擬化環境運作時能夠有效處理I/O DMA傳輸及裝置中斷作業,也就是讓VM虛擬主機可以「直接存取(Direct Access)」伺服器硬體資源,例如網路卡(VT-d、SR-IOV)等等,讓VM虛擬主機達到原生(Native)般的效能。

·Intel處理器:VT-d(Virtualization Technology for Directed I/O),如圖4所示。
·AMD處理器:AMD-Vi(I/O Virtualization)或IOMMU


▲ 圖4 未支援I/O虛擬化(左圖)、Intel VT-d硬體輔助虛擬化技術運作示意圖(右圖)。(圖片來源:Intel Virtualization Technology for Directed I/O)

實體記憶體(Memory)

首先,應該要選擇支援NUMA(Non-uniform Memory Access)架構的實體伺服器,以避免CPU處理器與實體記憶體之間的資料存取行為,因為跨越NUMA節點存取發生匯流排頻寬不足的問題會導致存取出現瓶頸。

值得注意的是,當採用支援NUMA運作架構的實體伺服器時,應該要將實體記憶體平均分配給每個NUMA節點,以避免因為某個NUMA節點記憶體空間不足,再次發生CPU處理器需要跨NUMA節點進行記憶體空間的存取,如圖5所示。


▲圖5 NUMA架構運作示意圖。(圖片來源:VMware Blog – SAP on VMware Sizing & Design Example)

此外,VMware虛擬化平台雖然擁有TPS(Transparent Page Sharing)、Memory Ballooning、Memory Compression等等記憶體優化機制。但是,若將為數眾多的VM虛擬主機運作在虛擬化平台上,且ESXi虛擬化平台記憶體優化機制都用盡但記憶體資源仍不足時,此時便會執行「Swapping」的動作(就像Windows作業系統執行Pagefile動作),雖然暫時能因應記憶體空間的不足,讓VM虛擬主機能保持運作,但是將直接影響VM虛擬主機的運作效能。

因此,從vSphere ESXi 5.0版本開始,可以規劃將ESXi SWAP File儲存在效能接近記憶體的SSD固態硬碟內(支援PCIe Flash Card、SAS/SATA SSD),同時還能結合vFRC(vSphere Flash Read Cache)機制協同運作(圖6),以便虛擬化平台即使因記憶體資源不足產生SWAP時,仍能保持高效能的運作效率(參考VMware KB2059285、KB2051647、KB2058983)。


▲圖6 vFRC(vSphere Flash Read Cache)機制運作示意圖。(圖片來源:VMware文件 – What`s New in VMware vSphere Flash Read Cache)

儲存設備(Storage)

到目前為止,四大實體資源(CPU、Memory、Storage、Network)已經規劃好CPU及Memory的部分,接著介紹的另一個重要環節就是「儲存設備(Storage)」。

目前,伺服器支援多種硬碟種類如SATA、NL-SAS、SAS、SSD、NVMe,而硬碟轉速有7,200、10,000、15,000 RPM等差別,磁碟陣列類型也有RAID 10、5、6等等,這些環節都會影響儲存資源整體的IOPS(Input/Output Operations Per Second)效能表現。

簡單來說,儲存資源IOPS便是總合了Random Read/Write以及Sequential Read/Write的整體表現,在測試IOPS效能數據時,Sequential的結果會比較亮眼,但在實務上應用程式的資料存取行為通常為Random Read/Write。

此外,IOPS效能並非只有硬碟介面及磁碟陣列模式會影響,還包含其他快取機制在內,舉例來說,當伺服器安裝的磁碟陣列卡(RAID Card),加裝「快取(RAID Card Memory)」及「智慧型電池(Battery Backup Unit,BBU)」之後,便能開啟資料「寫入快取(Write Cache with BBU)」機制,這樣的快取機制能夠有效降低磁碟陣列模式所導致的資料寫入效能下滑影響。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!