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