More  

收藏本站

電腦請使用 Ctrl + D 加入最愛
手機請使用 收藏
關閉

小編的世界 優質文選 主機

雲服務器哪家強?AWS、Azure、阿裏雲、騰訊雲、華為雲深度評測


字體大小:
2020年10月14日 -
:        
 

寫在前面:


上雲在今天幾乎已經成了很多企業的標配,雲服務器因為不需要運維人員去機房維護,也不需要企業去建設機房等,大大降低了企業的IT資源門檻,可以幫助用戶快速實現業務部署。雲服務器的隨需隨買、靈活彈性也讓企業可以從容應對流量高峰。

隨著雲計算行業發展越發成熟,廠商們服務器迭代越來越快、服務器的種類也是五花八門,不同的廠商的雲服務器性能也讓企業們非常關注。

在國際市場,亞馬遜AWS、微軟Azure和阿裏雲分列前三。在國內市場,阿裏雲占據了近一半份額,緊隨其後的是騰訊雲和華為雲等。

因此,筆者選取了上述幾家雲廠商的主力產品,分別從計算、網絡、存儲等多維度進行深度分析,並在MySQL、Redis和Ngnix等典型場景下進行測試。

准備:機型選定

此次評測我們選取了各家雲廠商最新CPU對應的規格,均為搭載英特爾的Cascade Lake CPU的中主頻機型,同樣選擇8核32G的機型,這是一般企業在平日業務中用得最多的規格,最接近實際業務需要。操作系統也都選擇了一樣的CentOS 7.4。

目前谷歌雲並未進入中國市場,對於國內用戶來說,使用非常不方便,因此就不進行評測了。

我們分別選定了AWS的通用實例m5、微軟Azure常規用途系列 Ddv4、阿裏雲六代增強型實例g6e、騰訊雲的標准型 S5、華為雲通用計算增強型c6s。由於華為沒有32G內存的,我們選擇了8核16G的c6s。這裏沒有選擇華為的c6型是因為其c6的vCPU不與物理CPU的超線程綁定,無法保證穩定的計算性能。

服務器最重要的無非是計算、存儲、網絡性能,接下來,我們會這三大方面去評測。最後,我們還會看下特定業務運行在幾家的服務器上的情況。

一、計算性能

1、整體性能

首先我們對五款雲服務器做整體計算性能的跑分。做任何的業務計算都需要占用大量CPU的運算能力,比如直播等視頻編解碼等,業務高峰期CPU的利用率經常會達到90%以上。

測試工具:
我們選擇了評測工具SPEC CPU。SPEC CPU是標准性能評價機構 (Standard Performance Evaluation Corporation,簡稱SPEC)開發的用於評測CPU性能的基准程序測試組,是一套CPU子系統測試工具。處理器、內存和編譯器都會影響最終的測試結果,而I/O(磁盤)、網絡、操作系統和圖形子系統對SPEC CPU2000的影響非常小。目前,SPEC CPU是業界首選的CPU評測工具。我們使用了其中的SPECint基准測試程序來評測各家雲服務器的整型處理性能。

結果:
我們可以看到,Azure的計算性能分最好,阿裏雲排名第二,騰訊雲和AWS次之,華為雲的c6s分數最低。

2、浮點計算能力/CPU性能

接下來,我們看下浮點運算能力,包括單核、多核浮點性能。使用的工具是Super Pi,這是一個比較聚焦和簡單的算例,專門算圓周率,跟CPU的主頻密切相關,耗時越短性能越高。

結果:
我們可以看到,這個結果跟CPU主頻確實是密切相關的。在多核性能下,耗時最短的是Azure和華為雲,然後是阿裏雲,最後分別是AWS和騰訊雲。

除了CPU之外,內存的性能在一定程度上決定系統表現,特別是針對大量訪問內存的場景,如關系型數據庫。而幾乎所有的業務,都會用到關系型數據庫。內存性能主要分為兩個方面,內存帶寬和內存延遲。

3、內存帶寬

測試工具:
Stream是業內公認的用於內存性能評估的基准測試軟件,其包括Copy(複制)、Scale(乘法)、Add(加法)以及Triad(三者複合)四種不同操作情況下的內存帶寬表現。

測試結果:
阿裏雲g6e與華為雲c6s差不多,算並列第一,騰訊雲第二,AWS第三,Azure明顯落後。

4、內存延遲

測試工具:
MLC為 Intel官方提供的免費內存測試工具,可以有效方便地測試內存延時。

測試結果:
華為雲的內存延時最低,僅為85ns;阿裏雲、騰訊雲也在90ns左右,剩下分別是Azure、AWS。

二、網絡性能

接下來是網絡性能,我們主要看PPS和時延。

1、PPS

PPS是每秒傳輸的數據包數量,直播等網絡要求較高場景對PPS要求比較高。單實例PPS越大,網絡性能越強,往往意味著可支撐更大的業務量。

在業務運行過程中,如果PPS比較高,QPS也會相對應更高。比如在非常常見的發彈窗場景,PPS高的機器能承載的發彈窗數量更高,有利於節省業務成本。

測試工具:
Netperf是一種網絡性能的測量工具,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。

測試方法:
在雲主機A上安裝netperf的netserver作為服務器端,雲主機B上安裝netperf作為客戶端,在不運行應用情況下,雲主機B壓測雲主機A(數據包大小1),測試雲主機A的網絡 UDP 收PPS性能。

網絡壓力持續時間為5分鐘,取雲主機A收到壓力50秒後持續200秒的PPS平均值。

測試結果:
阿裏雲g6e的網絡PPS上明顯領先,AWS m5和華為雲c6s居中,騰訊雲S5次之,Azure Ddv4明顯落後。

這裏除了AWS廠商沒有對實例規格做了QOS規定,可能就是沒有限速,而其他雲廠商都做了QoS(質量控制)限制,且是符合QoS要求的,所以我們更應該看下面一定壓力下的延遲數據,這個對於用戶來說更有意義。

2、網絡延遲

延遲是大多數企業非常關注指標。因為比如在遊戲和直播的業務,對延遲是十分敏感的,這是最關鍵的指標之一。

測試工具:
sockperf,是基於套接字API的網絡基准測試實用程序,旨在測試高性能系統的性能(延遲和吞吐量),也適用於測試常規網絡系統的性能。它涵蓋了大多數套接字API調用和選項。

測試方法:
用sockperf測試服務器在PPS 5000壓力環境下的時延。

測試結果:
阿裏雲的網絡延時非常出色,AWS的也不錯,微軟和華為的機器延遲在40-50us左右,騰訊雲S5的延時則明顯高於其他廠商。

三、存儲性能

存儲性能取決於不同的存儲實現,現階段不同的雲服務器廠商會提供不同的存儲解決方案以應對各種使用場景,目前SSD已經成為趨勢,Ddv4 暫時不能掛載超級SSD盤,無法測試。

對存儲需求最大主要是跑MySQL的場景,只需要用到一塊ESSD雲盤。但一般來說廠商們出於QoS(質量控制)的原因,即為了保證每台實例的體驗(以免有用戶買了小規格雲盤,卻占用了大量帶寬),會根據磁盤大小對雲盤性能進行限制,因此我們選擇了比較大的1.1T的雲盤來測試,主要測的是IOPS和延遲。

1、IOPS

存儲IOPS影響著單台機器能承載的業務量。電商場景就是非常典型的高IOPS的場景:用戶下單,業務場景一般有查詢和寫入兩種情況,查詢一般會用很多緩存;寫入場景就需要數據及時落盤,要求提高數據的寫入並發能力,需要很高的存儲IOPS。尤其在大促場景下,單盤更大的IOPS可以支撐更多用戶下單。

測試工具:
fio是IO性能測試工具,可以運行在Linux、Windows等多種系統之上,可以用來測試本地磁盤、網絡存儲等的性能。

測試方法:
我們在不運行應用情況下,雲主機掛載1100G的 SSD雲盤,並通過fio壓測(4K數據塊,隨機寫、隨機讀,隊列深度為64,numjobs為8)。對存儲持續壓測一段時間,取write/read的iops值。

結果:
阿裏雲最好,領先其他幾乎一倍,華為雲次之, AWS和騰訊雲則是差不多。

2、讀寫延遲

存儲延遲則影響著用戶的體驗,比如在電商場景下,延遲越低用戶下單的響應速度越快。

測試工具:
fio

測試方法:
Linux 雲主機安裝 fio,在不運行應用情況下,雲主機掛載1100G的 cloud_essd 硬盤,並通過fio壓測(4K數據塊,隨機寫、隨機讀,隊列深度為1,numjobs為1)。存儲壓力持續時間一段時間,取write/read的lat值。

結果:綜合來看,
阿裏雲延時最小,之後分別是AWS、Azure和華為雲。

四、特定場景測試

即便跑分性能在高,雲服務器畢竟是用來跑業務的,機器的性能最終還是要看E2E的性能。因此,我們選擇了最為常用的幾項應用。

1、MySQL

MySQL 是最流行的RDBMS(Relational Database Management System:關系數據庫管理系統),在WEB應用方面 MySQL 是最好的RDBMS應用軟件之一。

其因為開源、速度、可靠性和適應性而被廣泛使用。因而,運行MySQL的能行,也是衡量雲服務器表現的一個重要指標。

測試工具:
sysbench是跨平台的基准測試工具,支持多線程,支持多種數據庫;主要包括以下幾種測試:cpu性能、磁盤io性能、調度程序性能、內存分配及傳輸速度、POSIX線程性能、數據庫性能(OLTP基准測試)。這裏主要使用對數據庫性能的測試。

測試方法:
選取相同配置的2台Linux雲主機進行配置:雲主機A上安裝 mysql 作為服務器端,雲主機B上安裝mysql client 及 sysbench 作為客戶端,在不運行其它應用情況下,雲主機B壓測雲主機A,測試雲主機A的 mysql 服務性能,結果為取 QPS。網絡壓力持續時間為10分鐘,使用 sysbench 進行壓測,獲取平均每秒請求數QPS。

結論:
阿裏雲在 MySQL的場景下性能表現突出,AWS和華為的次數不相上下,騰訊明顯落後。

由於微軟Azure本規格並不支持超級SSD盤,掛載普通雲盤測試MySQL意義不大,因此略去。

2、Redis

Redis 是一款開源、高性能的key-value分布式內存數據庫,基於內存運行並支持持久化的NoSQL數據庫,當前最熱門的NoSql數據庫之一。

緩存系統、排行榜(如微博的熱搜)、最新列表(如最新的視頻或新聞列表)、分布式鎖和單線程機制(如秒殺系統)等,都是Redis應用的典型場景,在大多數互聯網業務中都非常常見。

測試工具:
Redis 自帶了一個叫 redis-benchmark 的工具來模擬 N 個客戶端同時發出 M 個請求。

測試方法:
與MySQL的類似,配置兩台雲主機,分別作為客戶端與服務器端進行壓測,獲取平均每秒查詢數,分別壓測 get 、set、sadd、mset 四種方式。

結論:
綜合來看,阿裏雲g6e跑Redis的性能同樣是一騎絕塵,華為雲和AWS不相伯仲,華為雲險勝,騰訊次之,微軟Azure排名最後。

3、Ngnix

Nginx是一款被廣泛應用的高性能的http服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。cpu、內存等資源消耗卻非常低,運行非常穩定。

測試工具:
使用wrk進行壓測,wrk是一款簡單的HTTP壓測工具,能用很少的線程壓出很大的並發量。

測試方法:
與上類似,在不運行其它應用情況下,作為客戶端的雲主機B 啟動wrk 壓測作為服務器端的雲主機A,測試雲主機A的 nginx服務接受性能。

壓測 wrk的測試參數設定,-c參數連接數設為1000, -t線程數根據雲主機B的核數計算得出(2倍核數), 獲取平均每秒查詢數,分別壓測長連接和短連接兩種場景。

結論:
華為雲在長連接的QPS上稍勝一籌,短連接則略有遜色;阿裏雲則相反;接下來是AWS和騰訊雲;微軟Azure再次排最後。

總結:綜合打分

我們可以根據上述跑分的排名,將各廠商每一項的排名記錄下來,並加總,最後總分最小的,就是服務器總排名最高的廠商。

根據得分表來看,阿裏雲位列綜合排名第一,在PPS、存儲IOPS上有相當大的領先優勢。在基礎性能(CPU、內存)部分,每個廠商各有千秋,這個是硬件選型決定的,測出來的數據符合各個廠商硬件預期。

綜合來看,阿裏雲的g6e的表現還是非常出色的,搭載的CPU雖然不是頻率最高的,但存儲和網絡占據絕對性能優勢,這依賴於阿裏雲在服務器架構上的創新,對網絡硬件加速及存儲技術都做了創新優化。

需要特別指出是,阿裏雲g6e在E2E方面的表現不俗,已領先國際友商一大截。E2E展現在使用雲服務器時上層業務的表現,是最能體現綜合性能優勢的。最終對比下來,阿裏雲這款g6e實例確實達到了不錯的效果。

其次是華為雲,華為雲在內存性能這塊非常突出,如果內存時延敏感可以考慮選擇華為雲。其綜合能力也不錯,同樣的CPU性能沒拿到第一,但在E2E性能方面排名基本靠前。

接下來就是雲計算祖師爺祖AWS,整體測試下來的感覺是比較均衡發展的,各方面都OK,唯獨在內存延遲這裏明顯落後,主頻的話由搭載的CPU決定,表現一般。

微軟Azure在CPU這塊性能第一,網絡延時也還可以,不過因為沒法掛載高性能雲盤不好判斷存儲性能,其他性能表現一般,而且考慮到Azure在國內的布點,對用戶又不太友好,著實不大推薦,如果業務對主頻敏感可以考慮。

最後是騰訊雲,騰訊雲的S5在計算性能、內存帶寬和內存延時上的跑分還不錯,Ngnix的性能表現也OK,浮點運算方面它雖然排第二,其實各家相差不大,但網絡延時方面S5顯然與其他實例差距有點大。

各家表現都已經一目了然,在買的的時候可能還得考慮性價比。由於價格取決於各家雲廠商折扣活動非常多,對不同用戶也有不同的優惠政策,大家可以選購的時候結合自己的折扣考慮。