許多新客戶在開始使用 CloudSigma 時都想測試其性能;他們通常希望在雲端伺服器與其自身的基礎架構之間進行性能基準測試,這很合理。單純按資源進行價格比較並不能說明全部情況;真正重要的是最終結果,即完成一項特定的計算任務需要花費多少成本?
對於任何給定的需求,在不同的雲端之間,實現該需求所需的資源數量可能會大不相同。這意味著僅僅比較價格是行不通的。反過來說,單獨比較性能也好不到哪裡去。有意義的比較需要將價格和性能結合起來,以計算出每個計算單元的某種成本衡量標準。在這篇文章中,我將分享我對我們的雲端伺服器和其他伺服器進行基準測試的一些想法。我還將提供一些獲取有用結果的實用建議,並解釋其真正的含義。
注意事項
首先要說明的是,我對一般的基準測試持相當懷疑的態度。它很少能真正反映實際的使用情況。簡而言之,沒有什麼能真正替代在該平台上運行您打算使用的實際應用程式。如果您能在合理的時間成本內做到這一點,那麼這種實踐是無可替代的。
另一個因素是雲端廠商的繁忙程度。您可能會對雲端伺服器進行基準測試並獲得極佳的結果。然而,這在很大程度上可能是由於該特定廠商的使用率(或缺乏使用率)所致。這可能不是一個積極的信號。它可能反映了營運上的困難、客戶流失、過去的可用性和可靠性問題等。因此,在解讀其基準測試結果時,您應該始終調查該雲端廠商過去的停機記錄和其他潛在問題。
作為最後的警示,性能並不是您應該考慮的唯一因素。較低的性能往往可能反映出其底層採用了更強健(且具備冗餘)的硬體架構。因此,清楚了解該雲端是建立在何種基礎架構之上始終非常重要。如此一來,您才能公平地比較結果,從而做出有意義的購買決策。
定義問題
在本文的後半部分,我將闡述性能的各個方面,以及如何最好地解讀這些結果。然而,在進行任何基準測試之前,重要的是要確定您希望在雲端中進行何種計算;這將決定不同性能指標的相對重要性。例如,如果您打算部署一個資料庫伺服器,且該伺服器將面臨高讀取但低寫入的存取需求,您就應該關注雲端中的磁碟性能,特別是非連續讀取存取。
因此,在開始對任何雲端伺服器進行基準測試之前,請切實明確您認為怎樣的雲端性能才算優秀。您應該確定哪些方面是關鍵,且對您計算的實際性能有著不成比例的重大影響。一旦您對此有了清晰的認識,您就可以開始著手進行基準測試了。
計算性能
當我們審視原始計算性能時,我們指的是 CPU 和記憶體(RAM)。在純計算層面上,不同雲端之間的性能差異實際上並沒有那麼大。然而,有一些因素導致了真正的差異。
到目前為止,影響雲端計算性能的最大因素是資源爭奪。公有雲是多租戶環境。記憶體和儲存空間實際上無法超額分配(儘管可以超賣),但 CPU 可以且確實被超額分配了。資源爭奪的程度差異很大,但本質上,公有雲廠商能夠以超過 100% 的比例銷售實體主機的 CPU 容量。
一些最大的廠商使用的 CPU 爭用率超過三倍。這意味著同一台實體機器上所有虛擬伺服器總共「‘售出’」的 CPU 容量可能是其實際 CPU 容量的三倍。他們這樣做是因為大多數虛擬伺服器在大部分時間裡都沒有利用到接近 100% 的 CPU 分配。儘管如此,爭用率仍會直接影響雲端伺服器的效能基準測試和實際使用。如果爭用很高(即超過 200% 的 CPU 分配),那麼雲端伺服器的效能將會顯著下降。
簡單來說,如果任何實體機器上的負載達到每個核心 1 以上,計算任務就會排隊,而該虛擬機器完成工作所需的時間就會變長。鑑於大多數雲端服務都是按容量/小時收費,這對該雲端的客戶會產生直接的成本影響。
影響計算效能的另一個重要因素是虛擬機器可以存取的 CPU 核心數量。這並非對所有應用程式都是一個因素,但許多現代應用程式確實支援多執行緒。實際上,這意味著應用程式和/或作業系統能夠將計算任務分配到多個核心。提高計算效能的一個好方法是,將應用程式可以支援的執行緒(即核心)數量與虛擬機器可以存取的核心數量相匹配。
不幸的是,這在許多公有雲中是無法實現的。這是因為它們的虛擬化平台不支援 CPU 核心層級的虛擬化。換句話說,每個核心一次只能由一台虛擬機器使用。在確實支援 CPU 核心虛擬化的雲端中,您應該嘗試在保持總 CPU 大小不變的情況下,改變該機器的核心數量。
例如,如果您有一台 2GHz 的機器,您可以看看將使用的核心數量從兩個增加到四個會如何影響您的基準測試。透過這樣做,在該虛擬機器上執行的應用程式將能夠同時透過四個核心執行任務。在我們的案例中,您可以透過網頁主控台伺服器詳細資訊彈出視窗上的「‘進階’」索引標籤來設定虛擬機器使用的核心數量。請記住,在手動覆寫使用中的核心數量之前,務必先檢查雲端廠商的標準核心大小。在我們的案例中,每個核心為 2.2GHz,但這因雲端而異。
我會建議考慮使用 POV-RAY, CoreMark, Dhrystone 或 Whetstone 來測試雲端伺服器的效能基準。
儲存空間:真正的雲端伺服器效能基準
所有效能都受到產生瓶頸的最弱環節的限制。目前,虛擬化技術在 CPU 和記憶體(RAM)的使用方面已經取得了顯著的進步。例如,單台實體機器可以進行虛擬化並擁有多個雲端伺服器,而對總體效能的損失極小。遺憾的是,在儲存空間方面,仍有很大的進步空間。最終結果是,在大多數情況下,雲端中虛擬伺服器的效能是由該雲端儲存解決方案的效能決定的。
簡而言之,儲存空間目前是雲端中大多數計算任務效能的限制因素。無論 POV-Ray 和其他基準測試在純計算任務中產生什麼結果,現實情況是,虛擬伺服器向實體儲存磁碟檢索和寫入資料的速度,將決定目前雲端伺服器的實際效能。
考慮到這一點,雲端效能的實際差異(即使在運算任務方面)往往源於儲存效能的差異。正如本文前面所提到的,根據運算任務的不同,客戶的需求也大不相同。在儲存方面更是如此。您是需要對大型連續資料塊(例如串流媒體)進行快速讀取存取,還是需要對小型分散的資訊(例如在大型資料庫中)進行快速讀取存取?您是否需要為定期大批次存取的快速變化資料維持繁重的寫入存取?場景多種多樣,每個場景在同一個平台上的表現都會有所不同。
從根本上說,效能的差異歸結為架構。這些架構上的差異通常源於資料儲存的穩健程度、其備援度,因此實際上也就是資料是否會面臨無法挽回地遺失的可能性。在高層次上,雲端要麼採用集中式資料解決方案,形式為 儲存區域網路 (SAN) ,要麼採用更分散的本機儲存解決方案。在這些方案中,儲存位於每個獨立的實體機器上。
好的 SAN 本質上內建了高水準的備援。然而,由於資料需要從 SAN 透過網路發送到虛擬機器’s 的 CPU 和 RAM 進行運算任務,因此效能會受到影響。因此,與具有本機分散式儲存解決方案的雲端相比,基於 SAN 的雲端在同等條件下的效能往往較低。SAN 的另一個缺點是它代表了一個非常大的單點故障。SAN 非常可靠。如果它們真的發生了嚴重故障(確實發生過),那麼您可能會面臨非常嚴重的停機和資料損壞。
大多數使用 SAN 的雲端廠商出於成本原因,並未採用企業環境中所使用的那種完全備援的容錯移轉解決方案。重要的是要意識到並非每個 SAN 都是等同的,並且要了解雲端廠商在其 SAN 中採用了何種水準的備援。
基於本機儲存的雲端往往具有良好的磁碟效能。然而,它們通常只提供非持續性形式的本機儲存。這與持續性儲存相比並不公平。暫時性儲存不需要像永久性儲存那樣對故障具有同等的穩健性。為了獲得有意義的結果,將持續性儲存與持續性儲存進行比較總是至關重要的。
在評估具有分散式本機儲存解決方案的雲端時,您還需要了解它們具有何種備援。硬碟的故障率相當高,因此儲存方法至關重要。大多數廠商都使用某種形式的 RAID ,但安全水準大不相同。在低階,您有 RAID1,其中兩個磁碟基本上互為鏡像。這通常具有良好的效能。但是,當一個磁碟損壞時,在更換的磁碟將所有資料從舊磁碟複製完之前,如果第二個(負載極重)磁碟也損壞,資料將面臨完全遺失的風險。此外,在重建 RAID1 陣列期間,磁碟效能可能會比平時低得多。
因此,許多廠商使用 RAID5(可容錯一個磁碟故障)或 RAID6(可容錯兩個磁碟故障)。RAID6 提供了目前為止最安全的本機儲存解決方案,但對效能的影響很大。我們的方法是使用 RAID6,並將其與頂級的硬體 RAID 控制卡相結合。它們具有大型記憶體快取並配有電池備援。我們使用的 RAID 控制卡實際上比整個磁碟陣列還要貴得多。因此,我們能夠提供與彈性低得多的配置相媲美的效能,同時仍能提供 RAID6 儲存的極大安全網保障。閱讀更多關於我們的 雲端基礎架構 設定,我們對此非常公開。
我建議使用 IOzone 或 Bonnie++ 進行磁碟效能基準測試。
因此,在解讀儲存基準測試的結果時,請確保您也擁有以下資訊:
- 雲端使用的是什麼儲存架構(本機、SAN 或其他)?
- 針對資料設有哪些容錯移轉和備援措施?
- 我正在進行基準測試的儲存空間是暫時的還是持久性的?
將這三個問題的答案與基準測試的結果結合起來,將能讓您對實際的儲存效能有相當不錯的深入了解。
網路
與運算和磁碟效能相比,網路效能的評估和測量要簡單得多。網路效能有兩個關鍵方面:延遲和頻寬。
根據您的需求,雲端廠商所使用的網路延遲可能重要,也可能不重要。如果您使用雲端主要是進行獨立運作的作業,延遲不太可能成為首要考量。然而,如果您正在執行與雲端外部世界互動的即時應用程式,那麼延遲將會是決定效能的關鍵因素。
通常,絕大部分的延遲是由純粹的物理距離造成的。例如,倫敦和舊金山之間的大部分延遲,實際上是光傳播該距離所需的時間。延遲的差異取決於所採取的路線效率不同。這正是不同雲端之間存在差異的方面。路線的效率直接取決於該雲端直接連接的網路供應商。這可以透過向他們取得 IP 連線或透過對等互連(peering)來實現。在查看延遲時,您只需 ping 您的雲端伺服器即可確定其效能。然而,確定實際終端用戶與您的雲端伺服器之間的效能是非常重要的。
如果您的多數用戶位於特定地理區域,或者主要從您公司的總部進行存取,那麼從這些位置測試效能就顯得至關重要。諸如以下的商業服務:Pingdom 提供了同時從全球大量一般位置確定延遲的具成本效益的方法。
實際的頻寬,您的雲端伺服器所能達到的這項指標也非常重要。與傳統的主機託管解決方案不同,雲端廠商往往根據總資料傳輸量來收費。換句話說,它不像按每 Mbit 計費那樣依賴時間,後者為您提供 24/7 全天候的固定連線水準。儘管如此,許多雲端廠商仍會‘限制’任何虛擬伺服器的頻寬。在您遇到該瓶頸之前,這對用戶來說是不可見的。如果您的頻寬使用呈現高度突發性的特徵,這可能是一個需要考慮的重要效能因素。
要測試雲端伺服器的實際頻寬,重要的是嘗試從一個在發送端並未限制傳輸速率的來源下載資料到雲端伺服器。我經常發現,確定可用速度的一個極佳方法是從主要廠商下載大檔案,例如:Microsoft, Ubuntu ,或者更好的是透過修補作業系統。這往往會同時從各個不同位置下載許多不同的檔案。這將讓您對連線速度有相當不錯的感受。
我經常下載 Fedora live CD (自其官網)作為標準測試,但您至少應該嘗試一些不同的檔案和位置。如果您堅持要使用自己非常快速的企業網路,那麼您可能想改為將檔案從雲端伺服器下載到您自己的網路中進行測試。
現在將價格因素重新納入以權衡結果
使用上述方法,您應該能夠很好地了解各種雲端伺服器廠商的效能表現。此外,您應該知道哪些方面最符合您的特定需求,並加以重點關注。
最後一步是在基準測試結果中加入價格維度。這沒有固定的公式。這取決於上述各個方面的相對效能,並由您來決定。如果某個雲端服務提供的效能高出 40%(由您評估),但價格僅貴了 30%,那麼它顯然非常有吸引力。同樣地,如果您有龐大的頻寬需求,較低的運算效能可能會被具競爭力的資料傳輸計費方案所彌補。做出正確決策的關鍵在於綜合考量所有不同的因素。
最後,基準測試應該是確定哪些雲端伺服器適合您的更廣泛流程的一部分。這應該包含其他方面。例如,這些可以包括服務層級協定、資料/供應商鎖定考量、物理位置以及司法管轄權。透過綜合所有這些方面,您將能做好準備,做出正確的雲端運算供應商選擇。
留言
目前尚無留言。成為第一個留言的人吧。