在遷移到Microsoft Azure公有云后,管理員需要從一系列的實例類型中做出選擇,并且隨后組合一系列支持服務——存儲,擴展,緩存,數據庫等——來優化工作負載性能。
本文綜合介紹Microsoft Azure云實例,以及將工作負載映射到合適實例類型的最佳實踐。
Azure實例類型分解
Microsoft目前列出了80個獨特的Azure實例類型,用戶可以從中選擇。實例類型如下:
A系列:通用實例提供一致的處理器性能和普通的內存以及磁盤能力。一些A系列的實例可以使用額外的處理器核和更多的網絡帶寬,從而運行計算密集型任務。
D系列:和A系列相比,提供更強大的計算能力和磁盤性能,因為有更多的處理器核,每個核有更多內存和固態硬盤(SSD)以供臨時存儲。
給工作負載匹配合適的Azure實例類型,可以從原生計算需求開始。
Dv2系列:因為使用具有更新特性運行在turbo模式的處理器,相同的內存和磁盤配置下,比D系列實例的處理能力強35%。
DS系列,DSv2系列,Fs系列和Gs系列:著重高性能存儲的角色,提供多樣的處理器,內存和帶寬特性,這些實例都可以為了快速,低延遲的I/O操作而使用SSD存儲做VM磁盤以及緩存。
F系列:提供和Dv2系列相同的處理器核,但是每小時的運營費用更低。
G系列:提供最高的內存能力,并且運行在使用Intel Xeon E5 V3處理器的服務器上。
H系列:為計算密集型任務而設計,這些任務包括建模,高性能計算(HPC)集群和模擬。
N系列:增加了圖像處理單元(GPU)的處理能力來處理要求最高的工作負載。
應該使用哪種Azure實例類型?
要為工作負載選擇正確的Azure實例類型,需要從原生的計算需求出發。運行應用,需要多少處理器核,內存,磁盤存儲,磁盤I/O和網絡帶寬?要回答這些問題,需要在本地環境對應用程序做評估,并且監控性能來檢測可能的瓶頸。
接下來,選擇一種能夠滿足,并且輕微超過這些預計需求的Azure實例。該實例類型還需要支持所有特別需求,比如GPU支持,計算密集或者高帶寬。
給某個云實例匹配工作負載并不總是1:1的關系。比如,實例大小限制了可用虛擬磁盤的數量。因此,如果某個應用程序需要大量虛擬磁盤,管理員可能就不得不選擇更大的Azure實例。使用Azure Diagnostics這樣的工具來測試并且度量實例內部應用程序的性能,并且驗證該核心度量是可接受的。如果不能接受,就在其他實例里再次嘗試這種工作負載。
Azure上運行Windows VM指南
Azure實例類型,比如DS系列或者GS系列,在可接受的費用內,為絕大多數企業工作負載提供良好的性能。
低優先級工作負載,比如測試和開發,可以運行在更低廉的實例上,比如A系列或者D系列,但是通常需要在性能上作出妥協。另一方面,高性能實例通常不值得所花的費用,比如H系列或者N系列,除非工作負載能夠從這樣的投資里顯著受益。
從實例大小開始,包括處理器核,內存,存儲,磁盤I/O和網卡(NIC)數量,這些可以和本地服務器實例保持一致。一旦工作負載遷移后,就要收集性能度量指標,并且如果需要可以將工作負載移動到不同的實例上。記住每種實例對磁盤大小,I/O和NIC數量都有限制。
即使決定了合適的實例大小,一個實例通常不夠。單個實例對于臨時性的,低優先級的測試和開發實例來說足夠了,但是不適合生產環境工作負載。如果應用程序,網絡或者底層硬件發生故障,工作負載就不可用了。在Azure上的工作負載的部署要求安排在一個可用集里的多個VM上,也稱之為集群。Azure不支持單臺VM的服務級別協議。
當預配實例,存儲和其他資源時,在最靠近工作負載用戶的Azure region或者location里預配這些資源。這樣做能夠讓延遲最小并且改進性能。
Azure實例能夠垂直擴展,也能夠水平擴展。垂直擴展意味著改變VM大小,通常是變大。這是工作負載需要更多資源時的最佳方案。水平擴展意味著向集群添加實例。當單個實例不能提供所需的計算能力或者處理流量,或者需要更多的可用性和彈性時,水平擴展是最佳方案。
如果可能的話,預配和管理資源同時進行。使用Azure的資源組來簡化并且管理賬單,然后以組為單元來監控并且管理這些資源。利用Azure的診斷能力,比如基礎的健康度量,啟動診斷和基礎架構的診斷日志。對工作負載問題做故障排查以及改進部署來說,日志和診斷至關重要。