天天看點

國内外公有雲對比:功能介紹、性能測試

相信很多個人和創業企業,跟我一樣,面對幾十家國内外雲伺服器,不知選擇哪一家?

問題導讀

1.  國内雲商各有什麼特點?

2.  AWS性能測試中為何性能較低?

3.  本測試中OS性能、IO性能哪些雲平台比較穩定?

本原文最早整理發表于米撲部落格: 

國内外公有雲對比:功能介紹、性能測試

一、功能介紹

近一段時間以來,國内外雲計算市場再一次風起雲湧。這一次熱潮與以往熱潮最大的不同,就是開始玩真的了。微軟、AWS、阿裡、百度、新浪、騰訊、360、IBM以及大量新興企業,紛紛宣布近期在國内公有雲領域的大動作,要麼就是開始落地營運,要麼就是推出大量的新服務,還有的開始大大免費牌。就連電子商務網站如同京東、美團都要進來摻乎一下(詳見米撲部落格:

全球雲服務商對比:阿裡雲,太貴了

),要在現在公有雲起步階段站穩腳跟。

另外,百度、騰訊、360面向個人使用者推出的免費網盤服務競争的不亦樂乎。在這個過程中,最受益的當然是廣大的使用者,因為使用者不是僅僅聽到各大廠商的忽悠,而是可以實實在在的使用各家的資源和服務,切實的體驗雲計算的好處。

不過熱鬧歸熱鬧,當使用者真正去選擇公有雲時,就不難發現一個現實困境,就是如何選擇一個适合自己的平台。公有雲不像硬體,有着成熟的體系和标準,而使用者選擇時要考慮的因素也非常多,技術上主要的因素有性能、穩定性、安全性、網絡、服務種類等等,而業務上則需要考慮價格、信任度、對自身業務上的幫助等。本文将簡要對比下現在國内幾個比較火的雲平台(面向個人使用者的除外,比如網盤),希望給大家一些初步的認識

本文對比的平台有以下:

新浪雲(SAE、SCH)

新浪算是國内做公有雲較早的廠商了。它的模仿對象是GAE,主要提供PaaS服務,名字也很類似,叫做Sina app engine, SAE。不過,近期新浪也準備推出虛拟機服務,進入IaaS領域。目前SAE支援PHP,Python,Java語言。其使用模式是:使用者在本地開發代碼,然後上傳至SAE環境,SAE端為代碼提供了運作環境和存儲空間,SAE還提供監控、彈性伸縮等服務。這樣,開發者不需要任何運維手段和工具,也不需要自己部署、管理伺服器

目前,SAE提供以下4類服務:

  • 存儲類,包括MySQL、對象存儲、Key-Value存儲、Memcached緩存等
  • 計算類,包括定時器、圖檔處理、郵件發送、網頁抓取、消息隊列等
  • 輔助類,包括防火牆,以及一些應用遷移和調試工具
  • 擴充類,包括地理資訊服務,應該是由第三方提供的服務

SAE的管理界面很明顯是以應用為核心的,每個應用的配置、代碼及其關聯的服務可以獨立管理。

國内外公有雲對比:功能介紹、性能測試

從其功能來看,SAE顯然是面向網際網路應用。

從技術層面來看,SAE的功能已經比較完整。

其優點是運作時間比較久,據官方說法已有52萬個應用

不過,SAE的弱點也很明顯:

1. 缺乏IaaS能力,這樣就對開發者的自由度進行了局限。PaaS雖好,但是限制太多,語言、版本、元件、服務皆不能自由選擇。

2. 缺乏與BAT(baidu, ali, tencent)抗衡的殺手锏。之前BAT都沒有大舉進入雲計算特别是PaaS領域,而從今年開始,各家都推出了各自的AppEngine,而且,百度有搜尋導入,騰訊有使用者導入,他們會對SAE的使用者産生很大的吸引力

3. 不提供備案,隻對已備案的應用提供托管能力。這就是說,新的應用沒法直接部署到SAE上,而是要找個第三方繞一下

百度雲(BAE、BCC)

百度雲推出的時間不長,與其聲勢浩大的網盤服務相比,其面向開發者的IaaS/PaaS服務相對有些默默無聞。百度網盤的首頁是cloud.baidu.com,而面向開發者的首頁是developer.baidu.com。如果直接搜尋百度雲,我們會直接進入百度網盤,可見百度對于雲的定位還是以消費者為主,開發者為輔。後面為了區分百度雲盤和面向開發者的雲,我們把後者稱為百度開發者雲。

盡管如此,百度開發者雲還是提供了完整的功能。

國内外公有雲對比:功能介紹、性能測試

從其首頁我們可以看出幾個特點:

1. 面向web應用和移動應用

2. 将端和雲整合在一起。盡管百度沒有自己的應用商店,但是百度最近收購了91,其企圖是通過強化移動入口吸引開發者,這樣,百度就有了兩個入口(搜尋和手機助手)。是以,開發者門戶并不是單純的雲服務門戶,而是雲+端+一系列工具一體的服務平台

下圖是其開發者中心的管理門戶,這裡面管道管理是指前端(web和app),開放雲服務是背景

國内外公有雲對比:功能介紹、性能測試

而主要的雲服務都在應用引擎裡面

國内外公有雲對比:功能介紹、性能測試

在功能上,開發者雲主要提供了AppEngine,稱為BAE。這個BAE看起來功能比SAE更強大,SAE有的BAE都有,而且在存儲上增加了redis和mongodb,通訊上增加了推送和觸發服務。此外還提供了虛拟機服務。目前虛拟機服務隻對少數開發者開放。

從文檔上看,虛拟機服務支援windows/centos/ubuntu/redhat,規格上最小1核3G,最大4核32G,支援VNC連接配接虛拟機Console(這樣虛拟機無需網絡,甚至無需完全啟動)。不過,很顯然該虛拟機服務能力十分有限,首先它隻有臨時盤,無法進行資料持久化;其次它缺乏網絡、安全支援。是以,目前的功能跟VPS類似,尚不是成熟的IaaS平台

另外,百度雲并沒有披露其實體機房資訊和網絡接入情況,目前來看部署應用時無法選擇部署位置。這樣的話,顯然無法實作異地負載均衡和容災,不太适合規模化應用。最後,與SAE一樣,BAE并沒有提出SLA承諾

做一個總結,百度開發者雲定位在面向Web應用和移動App的PaaS平台,會主要和SAE和騰訊App Engine競争

騰訊雲

最近,騰訊也加入了面向開發者提供公有雲服務的行列。目前,該服務隻向少數使用者開放,我有幸申請到一個賬号,可以先睹為快

騰訊雲的一個主要賣點是其遊戲平台,衆所周知,騰訊的主要收入來自于遊戲,而騰訊也将自己的平台開放出來,讓其他開發商的遊戲接入進來,一同做大遊戲市場。作為平台提供商,騰訊對于其接入的遊戲有一定要求,收入分成就不用說了,除此以外,還需要将遊戲托管在騰訊雲之上,這也是騰訊雲的起源。如今,騰訊把這個雲平台開放給其他使用者,不僅面向遊戲,也面向所有Web和移動開發者。顯然,雲的利潤比遊戲低得多,騰訊這樣做,主要也是希望聚集開發者,赢得人氣

從騰訊雲的公開案例來看,現在的使用者都是遊戲開發商

國内外公有雲對比:功能介紹、性能測試

連入騰訊雲的管理界面後,可以看到所有已訂閱的服務。目前騰訊雲上的服務比較少,核心服務就是3個:虛拟機、MySQL資料庫、NoSQL存儲。下面逐一了解下每個服務

國内外公有雲對比:功能介紹、性能測試

虛拟機的配置可選範圍較大,最小1個共享核1G記憶體,最大12核60G記憶體。作業系統包括3種Linux,不支援Windows

國内外公有雲對比:功能介紹、性能測試

部署虛拟機時,沒有地方選擇部署機房,是以,騰訊雲目前隻有一個機房,估計在深圳

部署虛拟機後,可以對虛拟機控制,包括:重新開機、重置密碼、回收、格式化。目測每個VM隻支援一個系統盤和一個資料盤,而且資料盤部署以後無法改變大小,也無法從虛拟機解綁。騰訊宣布10月18日開始支援雲硬碟,應該是對目前功能的改進

國内外公有雲對比:功能介紹、性能測試

目前騰訊虛拟機沒有任何安全防護,部署虛拟機後就直接暴露在公網上,安全性上有很大風險

雲資料庫是基于MySQL做的服務,最大支援600GB,支援7500/秒TPS。管理界面采用phpMyAdmin

NoSQL存儲是一個相容Memcached的高速資料存儲服務,估計是借鑒了Memcached的記憶體存儲服務,它支援資料持久化,類似Redis的思路。至于性能,騰訊并未公布

其他的幾項服務,主要起支撐作用,比如CDN、雲監控、負載均衡。值得注意的是,彈性Web服務也即将推出

綜上,騰訊雲目前的功能比較有限,而且也沒有承諾服務品質,目前還無法做出完整的評價。不過騰訊的定位顯然不是隻做IaaS,而是希望成為完整的IaaS+PaaS服務提供商,進而支撐以遊戲為主的生态系統。

上個月試用了下騰訊雲,結果被黑了

騰訊雲上來送了1000元費用,于是開個個虛拟機玩了下,總共開了沒幾天。結果前兩天發郵件過來,說欠費800多,就是說不到一個月消費了1800。我趕緊查賬單,結果看到了這樣的計費

國内外公有雲對比:功能介紹、性能測試

什麼?帶寬竟然收了600元。趕緊去查一下帶寬怎麼收費。原來帶寬不算在虛拟機費用裡面,是單獨計費的。具體計費方法,簡單來說就是:看你一天當中最大帶寬占用,然後按此計費。也就是說,不管你總共傳了多少資料,隻看峰值,而且一個月裡面隻看峰值最高的幾天。具體價格是這樣:

IDC帶寬當月總使用量小于等于300Mbps的部分,單價:1.80元/Mbps

IDC帶寬當月總使用量大于300Mbps的部分,單價:3.60元/Mbps

我那幾天的流量是這樣的

國内外公有雲對比:功能介紹、性能測試

是以,就算我一個月隻有3天有流量,而其他時間流量為0,那麼也按這三天算錢,而每天也是按峰值來算

其實我不記得為什麼會有這麼大峰值,也許是我下了個軟體,也許是被黑了。但無論怎樣,我收到一個天價賬單(10倍于虛拟機的價格)

但另一方面,騰訊雲并沒有限制流量的方法,隻要開公網ip,使用者就要自己限制流量,否則就等着被黑吧

那麼另1000塊錢是怎麼回事?騰訊雲每個月會先當機一部分金額,不管用不用,這樣可能月初時賬戶就成負數了,到月末再把未消費的返還。賬号變為負以後,會收到這樣一封郵件:

為了保障您的業務能正常營運,請您務必充值繳納全部欠費,如未能如期繳齊欠費,平台将采取包括且不限于以下措施,以維護平台的合法權益。由此造成的一切損失,由您自行承擔:

     1、系統自動回收您在騰訊雲中所有的雲資源(雲伺服器、雲資料庫、NoSQL高速存儲、CDN所有資料);

     2、要求您合法承擔所欠金額(如從騰訊應支付給您的其他費用中直接抵扣);

     3、法律範圍内可以采取的其他措施。

太坑了吧,本來就是預付費還要預付中再預付,還沒消費就把錢扣光然後要求充值抵賬,電信營運商也沒這麼狠啊。按第三條,難不成還要起訴我?吓的我趕緊關掉所有服務

阿裡雲

如果說新浪SAE要做中國的GAE,那麼阿裡雲就是想做中國的AWS。

阿裡雲早在幾年前就布局雲計算,時至今日已經小有規模。通過前幾篇的分析,不難發現其他幾家大型網際網路企業的IaaS服務都是剛剛起步,而微軟的Windows Azure也還沒在國内正式營運。是以,目前想用IaaS的大中型企業之前基本上隻有一個選擇,那就是阿裡雲。不過,目前Windows Azure已經開始提供小範圍使用,再加上其他幾個廠商的加入,阿裡雲未來面臨的競争也會更加激烈。

阿裡雲的口号是,打造資料分享的第一平台,顯然,做IaaS隻是一個起步。阿裡雲在幾年前收購了萬網,獲得了相應的IDC營運資質和使用者,也解決了IaaS領域了大部分問題,比如備案、域名注冊、安全防護等等。這跟微軟與世紀互聯合作,IBM與首都線上合作都是一個思路。這幾家都是要踏踏實實做服務的,眼光不僅僅隻是Web應用和移動應用,還包括了企業應用的範圍。

從阿裡雲的服務類型來看,跟騰訊雲十分類似。由于阿裡雲先,騰訊雲後推出,可見騰訊雲很大程度上參考了阿裡雲

國内外公有雲對比:功能介紹、性能測試

在雲伺服器部分,阿裡雲提供windows/centos/ubuntu/redhat/debian多種OS,規格上,最小共享核512M記憶體,最大8核32G記憶體。全國有兩個機房,分别在青島和杭州

在部署模式上,阿裡支援包月包年和按量兩種,選擇配置時,阿裡雲會實時計算出價格,這一點十分友善。同時,在部署和取消虛拟機時,阿裡雲都會短信确認,同時發送管理者密碼到使用者手機上。這一點上,更符合網際網路使用者習慣,或者說,跟支付寶是一個風格

國内外公有雲對比:功能介紹、性能測試

從實際使用來看,按量付費十分不好用:部署後無法變更配置,無法增加磁盤,無法修改磁盤空間,無法停機。而且,啟動按量付費的虛拟機時,賬戶餘額必須大于100元。對于開發者來說,如果想臨時啟動一個虛拟機進行調試,就會比較麻煩。包月方式支援配置變更,但是最少也要花每月69元。按量付費唯一一個友善的功能,是支援定時删除虛拟機

包月形式的

虛拟機的管理界面比較簡單,具有基本的虛拟機、磁盤、快照、鏡像管理功能。虛拟機支援啟動停止、修改密碼。網絡部分的功能十分欠缺

國内外公有雲對比:功能介紹、性能測試

阿裡雲的磁盤支援快照,可以從快照復原。不過不能從快照建立新的磁盤。另外,一個磁盤也無法從一個主機解挂,再加載給另一個虛拟機。也就是說,兩個虛拟機之間無法通過磁盤、快照等方式進行資料移動,隻能在應用層面進行網絡拷貝。同時,按量付費的虛拟機隻能加載一個資料磁盤,無法實作多塊磁盤做條帶化。而包月的虛拟機最多有4個資料盤

阿裡雲的資源管理和資源申請是在兩個不同的門戶裡面。資源申請類似一個購物車,結賬後資源出現在管理控制台裡面。使用者使用的時候,需要頻繁在多個界面間切換

雲引擎部分,支援PHP和NODE.JS,支援memcache,消息隊列,計劃任務

雲資料庫部分,支援MySQL和SQL Server

阿裡雲最具特色的要算它的存儲服務,也正好印證了它的口号,要在資料上大作文章。阿裡雲在存儲上的服務有6項,而存儲之外的服務隻有5項。在6個服務中,包含關系資料庫、對象存儲、結構化存儲、大資料服務

另外,阿裡也仿照AWS,建立了一個SaaS市場,為阿裡雲上的使用者提供了一個使用者入口。

阿裡雲前期積累的使用者很多,有贊揚的,也有不斷吐槽的,比如部落格園。

總的來說,阿裡雲的優勢是進入IaaS領域早,繼承了萬網的服務能力,提供免費的備案服務,提供免費的網站搬遷服務,這對中小網站十分有吸引力。同時,阿裡雲的市場推廣力度大,廣告打的到處都是,今天打折,明天贈送,很是熱鬧。阿裡雲的缺點,在IaaS部分缺乏虛拟網絡和VPN,無法進行虛拟機組網,無法滿足傳統應用在在組網上的需求,而在PaaS上,阿裡雲的能力十分欠缺,這會導緻客戶粘性差,造成客戶十分容易流失

青雲

說起青雲,很多人可能沒聽說過,不過,一年之内這個名字必然成為國内雲計算熱點。青雲是一家創業公司,專注做IaaS,目标是超越亞馬遜。這家公司成立隻有半年,兩個月前開始接受試用。它的試用是完全免費的,也不需要邀請,給個郵箱就行。

青雲官網: www.qingcloud.com

青雲為什麼有超越亞馬遜的志向?

下面我就簡要分析下。青雲的CEO richard來自IBM,IBM有藍雲,是以青雲的意思很明顯,是青出于藍。Richard是個極客程式員,他另外兩個合夥人,分别來自騰訊和百度,而這家公司目前的團隊規模,我猜測不超過10人。是不是很有矽谷範兒?Richard在IBM的時候,開發了一個項目,叫HSLT(High Scale Low Touch),這個産品就是一個IaaS平台,跟青雲十分類似。HSLT完全基于網際網路技術開發,跟傳統的IBM軟體開發方式完全不同,其核心思想是基于大規模分布式的低成本硬體,建構高可靠的IaaS平台。HSLT有幾個特點,第一是虛拟機部署快,第二是系統支援自愈,第三是全軟體實作虛拟存儲、虛拟網絡。盡管功能上跟Openstack類似,但架構上HSLT跟Openstack完全不同。HSLT從架構上就是為了滿足上萬台虛拟機部署和管理而設計的,或者說,是為了滿足大規模公有雲的需求設計的。這個産品是有跟AWS競争的潛力。而青雲不僅具備HSLT的完整功能,還具備了額外的功能,那就是用SDN實作的虛拟網絡

青雲絕對不是簡簡單單實作各家都有的功能,而是在幾個功能點上做到極緻,進而展現它的“酷”,否則,這種創業企業是無法跟其他巨頭競争的。在這幾個功能點上,青雲可以秒殺國内所有的IaaS提供商,這絕對不是誇大。

下面就眼見為實吧。門戶左側是其提供的服務,似乎看不出什麼特别。這幾項都是IaaS常見的服務。不過它的門戶很清爽,而且将服務執行個體、日志、賬戶餘額乃至工單都內建在了一起。這就是小而精的好處

國内外公有雲對比:功能介紹、性能測試

青雲的奧妙,就在這每個服務裡面。隻能說,用過才知道

神奇1:虛拟機從申請到部署完成隻需要8秒,啟動隻需要1秒!同時部署10個100個虛拟機也是一樣快。基本上,使用者隻要點選建立虛拟機,一眨眼虛拟機就可以登入了。

要知道,AWS上啟動虛拟機,最快也得一兩分鐘,而國内的IaaS服務,基本都得5-10分鐘。那青雲是怎麼做到的呢?虛拟機的部署,一般過程是:從源存儲位置拷貝一個OS鏡像作為虛拟機系統盤-〉宿主實體機挂載該系統盤進行配置->啟動虛拟機。青雲對這個過程進行了優化,在拷貝時采用了Copy on write技術,就是不進行真正的拷貝,而是獲得一個快照,并将後續的寫操作寫入新的空間,這樣,虛拟機就可以即時啟動。此外,青雲對Linux進行了精簡,隻保留最基本的包,特别精簡了自啟動服務,這樣實作了虛拟機從啟動到現實登入界面隻需1秒

從記錄檔可以看出,不僅是虛拟機建立,基本上所有的操作,都是在秒級完成,可見青雲将管理效率追求到極緻

因為能做到秒級部署,是以青雲提出按秒計費,世界上估計就此一家

神奇2:支援完善的虛拟網絡和VPN,而且支援圖形化設計

這個功能阿裡雲現在都還沒有,更别說騰訊百度新浪了,而這個功能實際上是企業使用者十分看重的,有了這兩項功能才能更安全的連接配接虛拟機,并将雲端的虛拟機與企業已有的雲之外的伺服器對接。虛拟網絡的意思,是允許使用者自己規劃網絡拓撲,将虛拟機進行二層互聯或者三層互聯,同網絡内虛拟機可以互訪,而不同網絡的虛拟機互相隔離。VPN是将遠端網絡安全接入雲網絡

下圖就是青雲管理界面上的互動式網絡設計圖。相信每個網管都會使用。使用者可以自己定義路由器,交換機,然後将虛拟機與交換機進行互聯,将交換機連入路由器。使用者可以自己規劃每個子網的IP位址,可以綁定公網位址。為什麼說它神奇呢?是因為虛拟網絡功能之前隻有AWS、Windows Azure等少數廠商可以做到,而青雲不僅做到了,還做了一個互動式界面,不得不贊歎下

國内外公有雲對比:功能介紹、性能測試

具體到實作機制,AWS和Windows Azure估計都是利用分布式路由表來實作的,而青雲是采用SDN理念下的Openflow實作的。這兩種實作機制的差別,是前者是靜态路由,後者是動态路由。二者各有優劣,不過SDN最近特别火,又因為其開放性獲得了相當多的關注

其他方面的各種小創新還有很多,雖然算不上神奇,但也可以說是讓人眼前一亮。

  • 在基本功能上,青雲支援windows/ubuntu/centos/federa/debian OS, 最大支援8核32G記憶體
  • 存儲部分隻提供塊存儲,不過一個虛拟機可以挂多個盤,每個盤最大500G
  • 網絡部分除了虛拟網絡和VPN,還支援虛拟機同時加入多個自定義網絡,可以自己手動配置設定IP。VIP支援流量控制
  • 支援備案
  • 監控支援從一分鐘到一年的資料
  • 提供API接口與指令行接口

回過頭來,我們可以分析下青雲的優劣勢。

青雲的優勢是,使用簡單,管理效率高,易用性強,這對于個人開發者十分具有吸引力。其弱點是,營運時間短,難以快速獲得大中型客戶的信任。個人認為青雲可以定位為國内的Linode,靠低價和易用吸引低端使用者。從長遠看,如果青雲能夠一直保持這種技術上的領先優勢,是很有可能做大做強的。

功能篇總結

經過比較,不難發現目前國内的公有雲廠商分成兩個路線,分别是IaaS和PaaS。IaaS以AWS為标杆,PaaS以GAE為标杆。新浪、百度目前以PaaS為主,騰訊、阿裡、青雲目前以IaaS為主。從長線來看,除了青雲之外,其他所有廠商都會走向IaaS+PaaS的混合模式

下面,就對IaaS和PaaS領域内的公有雲進行橫向對比。同時,也将AWS、GAE和Windows Azure加入對比。

AWS、GAE和Windows Azure中在短期内隻有Windows Azure會進入國内。因為IBM也宣布了落地國内的計劃,有人可能會問IBM的公有雲是什麼樣,其實IBM的公有雲有好幾套方案,一個是現有IBM Smarter Cloud的公有雲方案,由TSAM和Websphere Pure application這種厚重的企業軟體構成,一個是上一篇介紹過的HSLT,還有一個是IBM近期收購的SoftLayer的方案,最終在國内落地哪個還不得而知,這裡暫不做比較

在PaaS部分,可以比較的廠商包括新浪SAE,百度BAE以及國外三巨頭

很明顯,國外三巨頭領先優勢明顯,而且彼此之間難分伯仲。從國内來看,新浪和百度領先阿裡較多,盡管新浪推出SAE較久,但BAE迅速趕上,功能上反而比新浪更多

國内外公有雲對比:功能介紹、性能測試

在IaaS部分,可以比較的廠商包括騰訊,阿裡,青雲以及國外三巨頭

同樣的,國内廠商均落後于國際廠商。

Google目前在IaaS剛起步,明顯落後于Azure和AWS。

Azure和AWS基本上同步,AWS比Azure強在提供更多的虛拟機規格和OS種類。

在國内,阿裡顯然比騰訊要強很多

國内外公有雲對比:功能介紹、性能測試

通過總結可以看出,在虛拟機部分,國内的服務提供商目前提供的服務普遍缺乏配套的虛拟網絡或者VPC功能,這使得虛拟機服務跟VPS服務差別不大

綜上所述

Windows Azure和AWS是雲計算領域最強的兩個廠商,功能完善,覆寫廣泛。

在國内,IaaS領域是阿裡雲目前領先,PaaS領域目前百度和新浪領先。

随着Windows Azure商用日期的臨近,這種局面很快會被改寫

另外,各個雲服務各有各自的優勢,短期之内估計很難出現AWS那種一家獨霸市場的局面。

各家的優勢領域總結

阿裡雲與新浪雲:積累了許多早期使用者,也積累了相應的營運經驗

百度雲:吸引“流量”型網站開發者

騰訊雲:吸引騰訊系周邊産品的開發者

青雲:吸引獨立開發者和部分小型開發商

Windows Azure:是企業使用者和.NET陣營使用者的首選。由于其強大的功能,相信也會吸引很多網際網路開發者

最後,從機房分布來看,大部分大型的雲服務提供商都把機房放在經濟發達的城市,比如新浪在北京,阿裡在杭州青島,Windows Azure在北京上海。這和國外的雲服務提供商的分布有很大差異,同時,這也給了國内其他雲服務提供商很多生存空間

國外雲平台

先說明一點,由于國内公有雲起步較晚,基本上所有的公有雲都是模仿或者克隆國外現有的雲平台,是以,這裡不得不首先說明下國外幾個主流的有代表性的雲平台:

AWS

這個不用多講,AWS是公有雲第一品牌,也是業界标杆,從2006年起AWS就開始營運,可以說正是AWS造就了雲計算當今的成果。AWS以IaaS起步,不過現今已經兼具IaaS和PaaS能力

Windows Azure

這個是微軟的公有雲,本人的部落格有非常多的描述。

Windows Azure 從2009年開始營運,最初以PaaS為主,如今也兼具IaaS和PaaS能力

Google Cloud

起初Google主打PaaS服務App Engine,知道今年才推出IaaS服務

Linode

其特色是價格便宜,使用簡便。

Linode是Linux node的縮寫,不支援Windows。

Linode的定位是VPS,其網絡能力比較弱,沒法支援虛拟網絡。

其價格差不多隻有AWS和Windows Azure的一半。出于這些因素,Linode成為大量獨立開發者的首選

二、測試

在簡單了解各家雲計算的能力之後,緊接着大家關注的問題就是性能、價格、穩定性等問題。本篇先從性能入手

本篇準備測試阿裡雲,Windows Azure中國站,并以AWS作為比較。測試對象以虛拟機為主,測試工具為兩個:

Unixbench

開源的Linux性能測試工具,可以綜合測試虛拟機的CPU、記憶體、檔案、程序、腳本、系統調用、管道等多個次元,并且會給出一個總分。

該工具介紹:

https://github.com/kdlucas/byte-unixbench https://github.com/kdlucas/byte-unixbench

style="color:#0000cd;">  (推薦)

http://code.google.com/p/byte-unixbench/ http://code.google.com/p/byte-unixbench/

style="color: rgb(0, 0, 205);">    (舍棄)

Orion

Oracle釋出的一個免費IO測試工具,該工具可以測定磁盤的IOPS、吞吐量、延遲。

盡管也有一些其他IO測試工具,比如dd、bonnie++、iozone,但是隻有orion可以同時測定IOPS和吞吐量,這也是我選擇該工具的原因。

該工具介紹在

http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html

style="margin-top: 10px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px;"> 

OS性能測試

首先來看Unixbench,由于各家的虛拟機規格不同,選擇如下的虛拟機規格進行對比

 雲伺服器 測試使用的站點 OS類型 小規格 S 中規格 M 大規格 L
Windows Azure中國站 北京 CentOS 6.3 64位 1核1.7G記憶體 2核3.5G記憶體 4核7G記憶體
AWS北美 US East m1.small (1 ECU)

m1.medium (2 ECU)

1核3.5G記憶體

m1.large (4 ECU)

2核7.5G記憶體

青島 1核1.5G記憶體 2核4G記憶體 4核8G記憶體

盡管AWS的中規格隻有1個核,但是根據AWS的配置,其等效的計算能力(ECU)是小規格的2倍,是以它跟Azure的M型是對等的。大規格同理

百度雲和新浪雲的虛拟機還未開放,暫不考慮(注:本文寫于2013年,百度雲和新浪雲等的虛拟主機在2016年前後已釋出)

首先說明下測試過程。公平起見,本測試未做任何性能調優和配置變更,完全采用各家提供的預設OS鏡像。虛拟機也都沒有配置SWAP分區

Unixbench 安裝與配置

首先用root登入目标虛拟機

1. 下載下傳安裝包(建議下載下傳最新版)

wget

https://github.com/kdlucas/byte-unixbench/archive/master.zip 

     (推薦)

http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz

  (舍棄)

2. 解壓縮

tar zxvf UnixBench5.1.3.tgz

3. 進入UnixBench目錄

4. 進行編譯

make clean

make

yum -y install gcc

./Run

5. 運作 ./Run 即可開始測試,等待十幾分鐘即可

1) 運作輸出的結果:

Benchmark Run: Mon Sep 04 2017 20:22:53 - 20:51:13

1 CPU

in

system; running 1 parallel copy of tests

Dhrystone 2 using register variables       23736936.0 lps   (10.0 s, 7 samples)

Double-Precision Whetstone                     3556.3 MWIPS (10.1 s, 7 samples)

Execl Throughput                               3570.1 lps   (29.9 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks        565755.4 KBps  (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks          177397.0 KBps  (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks       1337004.0 KBps  (30.0 s, 2 samples)

Pipe Throughput                             1145152.0 lps   (10.0 s, 7 samples)

Pipe-based Context Switching                 254288.8 lps   (10.0 s, 7 samples)

Process Creation                              11098.7 lps   (30.0 s, 2 samples)

Shell Scripts (1 concurrent)                   4001.7 lpm   (60.0 s, 2 samples)

Shell Scripts (8 concurrent)                    547.7 lpm   (60.1 s, 2 samples)

System Call Overhead                        1846761.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX

Dhrystone 2 using register variables         116700.0   23736936.0   2034.0

Double-Precision Whetstone                       55.0       3556.3    646.6

Execl Throughput                                 43.0       3570.1    830.2

File Copy 1024 bufsize 2000 maxblocks          3960.0     565755.4   1428.7

File Copy 256 bufsize 500 maxblocks            1655.0     177397.0   1071.9

File Copy 4096 bufsize 8000 maxblocks          5800.0    1337004.0   2305.2

Pipe Throughput                               12440.0    1145152.0    920.5

Pipe-based Context Switching                   4000.0     254288.8    635.7

Process Creation                                126.0      11098.7    880.9

Shell Scripts (1 concurrent)                     42.4       4001.7    943.8

Shell Scripts (8 concurrent)                      6.0        547.7    912.9

System Call Overhead                          15000.0    1846761.4   1231.2

========

System Benchmarks Index Score                                        1064.1

2)運作後的目錄結構

[root@mimvp-bj UnixBench]

# ll

total 144

-rw-r--r-- 1 root root 10133 Jun 30 08:19 Makefile

drwxr-xr-x 2 root root  4096 Sep  4 20:22 pgms

-rw-r--r-- 1 root root 17753 Jun 30 08:19 README

drwxr-xr-x 2 root root  4096 Sep  4 20:22 results

-rwxr-xr-x 1 root root 60436 Jun 30 08:19 Run

drwxr-xr-x 2 root root  4096 Jun 30 08:19 src

drwxr-xr-x 2 root root  4096 Sep  4 20:51 testdir

drwxr-xr-x 2 root root  4096 Sep  4 20:36 tmp

-rw-r--r-- 1 root root 17890 Jun 30 08:19 USAGE

-rw-r--r-- 1 root root  4622 Jun 30 08:19 WRITING_TESTS

3) 檢視 results/ 目錄下的html結果

http://demo.mimvp.com/unixbench/ http://demo.mimvp.com/unixbench/

style="margin-top: 10px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px;">

國内外公有雲對比:功能介紹、性能測試

如果運作時報如下錯誤

Can't locate Time/HiRes.pm

可以執行下

yum install perl-Time-HiRes

安裝缺少的包

在Windows Azure下,CentOS預設沒有安裝gcc,可以在make之前運作如下指令安裝gcc

yum --disableexcludes=main install gcc

在阿裡雲和AWS下,Unixbench需要安裝一個perl擴充包,可在運作./Run前運作

Unixbench測試結果

虛拟機的性能,主要取決于兩個因素:實體機性能,實體機上運作的虛拟機個數

了解虛拟化的人都會知道實體核和虛拟機的邏輯CPU(vCPU)并不是一一對應的。一個實體核可以支援多個vCPU,甚至一個超線程支援多個vCPU。這樣一個2個4核支援超線程的處理器,首先在虛拟化層會變成16個核,進而可以支援最少16個vCPU。顯然,vCPU對應的實體核配額越多,其性能就越好,Unixbench分數就越高

先看一下總分

國内外公有雲對比:功能介紹、性能測試

1. AWS,這個分數不出意料的低。

Azure是AWS的3-4倍,而阿裡雲也有AWS的2-3倍。這個結果跟一個國外的第三方做的測試結果是類似的,

詳細情況可參考:

http://blog.csdn.net/shaunfang/article/details/9770527 http://blog.csdn.net/shaunfang/article/details/9770527

    (

英文評測網址

為啥大名鼎鼎的AWS性能如此之差?這跟AWS的曆史有關。

AWS早在2006年就開始做雲計算,當時就定下了小、中、大等虛拟機規格。大家都知道硬體能力每年都在增長,這樣當AWS增加新的伺服器時,其處理能力就比原有的強。如果新的伺服器也支援同樣的使用者數,那麼使用者拿到的虛拟機就會比原有的強。這會造成使用者在不同時間段申請的同規格虛拟機性能不同的情況。于是AWS提出一個ECU概念,即邏輯運算能力,使用者申請的同規格虛拟機永遠擁有類似的處理能力,并且用ECU來代表,比如1ECU就代表一個Sandy Bridge級Xeon的處理能力。這樣的話,2010年的一台伺服器可能會虛拟出10台小規格的虛拟機,而2013年的一台伺服器就可以虛拟出20台虛拟機。阿裡雲和Windows Azure都比AWS晚,它們使用的處理器較新,起步的虛拟機規格就比AWS高好幾倍了。目前,Azure所提供的一個邏輯核基本上對應一個伺服器的實體核,而AWS顯然是4、5個虛拟機共享一個實體核。另一方面,Azure的定價跟AWS一模一樣,花一樣的錢就可以獲得比AWS強4倍的計算能力

AWS采用的是Intel Xeon E5430 CPU,主頻2.66G,啟用了超線程

OS: GNU

/Linux

-- 2.6.32-279.2.1.el6.centos.plus.x86_64 --

#1 SMP Thu Jul 19 16:20:44 CDT 2012

Machine: x86_64 (x86_64)

Language: en_US.utf8 (charmap=

"UTF-8"

, collate=

"UTF-8"

)

CPU 0: <span style=

"color:#0000FF;"

>Intel(R) Xeon(R) CPU E5430 @ 2.66GHz<

/span

> (5320.0 bogomips)

<span style=

"color:#0000FF;"

>Hyper-Threading<

/span

>, x86-64, MMX, Physical Address Ext, SYSCALL

/SYSRET

2. 阿裡雲

盡管測試采用的阿裡雲主機配置不如Azure(主要是記憶體小一些),但是其最終性能卻接近Azure,這說明阿裡雲采用的硬體比較新,另外,沒有用一台實體機去支援大量虛拟機

從結果看,阿裡雲采用的是Intel Xeon E5-2420 CPU,主頻1.9G,啟用了超線程

OS: GNU

/Linux

-- 2.6.32-358.6.2.el6.x86_64 --

#1 SMP Thu May 16 20:59:36 UTC 2013

Machine: x86_64 (x86_64)

Language: en_US.utf8 (charmap=

"UTF-8"

, collate=

"UTF-8"

)

CPU 0: <span style=

"color:#0000FF;"

>Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz<

/span

> (3800.2 bogomips)

<span style=

"color:#0000FF;"

>Hyper-Threading<

/span

>, x86-64, MMX, Physical Address Ext, SYSENTER

/SYSEXIT

, SYSCALL

/SYSRET

3. Windows Azure分數最高

從結果看,使用的是AMD 4171HE CPU,沒有超線程

OS: GNU

/Linux

-- 2.6.32-279.14.1.el6.openlogic.x86_64 --

#1 SMP Wed Dec 12 18:33:43 UTC 2012

Machine: x86_64 (x86_64)

Language: en_US.utf8 (charmap=

"UTF-8"

, collate=

"UTF-8"

)

CPU 0: <span style=

"color:#0000FF;"

>AMD Opteron(tm) Processor 4171 HE<

/span

> (4189.4 bogomips)

x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL

/SYSRET

結論:Windows Azure性能最好,是AWS的3-4倍,比阿裡雲高10-20%

IO測試

IO測試主要測試磁盤性能。目前,各家提供的虛拟機基本上有三種磁盤:

1. OS盤

2. 本地臨時盤

3. 資料盤

其中,OS盤和資料盤都應該是持久化的,如果實體機故障或者虛拟機重新開機,上面的資料應該繼續保留。OS盤和資料盤的差別,是資料盤建議用來存儲應用和使用者資料,而OS盤是預設提供的,不建議放使用者資料。資料盤一般可以虛拟機解綁,然後加載給其他虛拟機。本地臨時盤是存儲在實體機本地磁盤上,沒有做持久化,很容易損壞或丢失,但其成本低,性能高,一般用來做緩存。

AWS和Azure都同時支援3種盤,阿裡雲支援OS盤和資料盤。AWS還有一種叫IOPS盤,本次沒有比較

由于Orion測試需要清空資料,本測試隻測資料盤和本地臨時盤

虛拟機準備

每個測試都在一台小規格的虛拟機上完成,OS為CentOS 6.3 x64. 資料盤大小為10G

Orion安裝與配置

Orion的下載下傳需要去Oracle網站。

1. 進入 

Oracle ORION 下載下傳 

(ORION 11.1 版)

2. 選擇x86_64版本下載下傳,可能接受協定并輸入Oracle ID賬戶密碼

wget  

http://download.oracle.com/otn/utilities_drivers/orion/orion_linux_x86-64.gz

style="margin-top: 10px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px;">3. 解壓縮安裝包

gzip -d orion_linux_x86-64.gz

4. 解壓後得到一個檔案,賦予執行權限

chmod +x orion_linux_x86-64

5. 建立 orion.lun檔案,在裡面寫入測試的目标盤,比如/dev/vda1

# echo /dev/vda1 > orion.lun

需要注意:orion會直接在磁盤級進行讀寫,會損壞上面的檔案系統,是以一定要用空磁盤進行測試

6. 執行讀測試,該測試會進行4K大小的随機讀和1M大小連續讀

./orion_linux_x86-64 -run advanced -size_small 4 -verbose

運作輸出界面如下:

# ./orion_linux_x86-64 -run advanced -size_small 4 -verbose

ORION: ORacle IO Numbers -- Version 11.1.0.7.0

orion_20170904_2040

Test will take approximately 9 minutes

Larger caches may take longer

Name:

/dev/vda1

Size: 21473787904

1 FILEs found.

TEST START

----------------------------------------------

Running point: Small=0, Large=0

Point 1 out of 8

Valid

Running point: Small=1, Large=0

Point 2 out of 8

7. 執行寫測試,該測試會進行4K大小的随機寫和1M大小連續寫

./orion_linux_x86-64 -run advanced -size_small 4 -write 100 -verbose

# ./orion_linux_x86-64 -run advanced -size_small 4 -write 100 -verbose

ORION: ORacle IO Numbers -- Version 11.1.0.7.0

orion_20170904_2047

Test will take approximately 9 minutes

Larger caches may take longer

Name:

/dev/vda1

Size: 21473787904

1 FILEs found.

TEST START

----------------------------------------------

Running point: Small=0, Large=0

Point 1 out of 8

Valid

Running point: Small=1, Large=0

Point 2 out of 8

這個測試會進行幾組8K大小的随機讀寫和1M大小的連續讀寫測試。

前者用來測定IOPS能力,後者測定吞吐量

測試完成後,會發現生成并不是圖形化的網頁,而是許多xxx.csv檔案,需要用 Excel 或 Number 轉化打開

1)xxx.csv 檔案清單

-rw-r--r-- 1 root root      128 Sep  4 20:47 orion_20170904_2040_iops.csv

-rw-r--r-- 1 root root      128 Sep  4 20:47 orion_20170904_2040_lat.csv

-rw-r--r-- 1 root root      100 Sep  4 20:47 orion_20170904_2040_mbps.csv

-rw-r--r-- 1 root root      582 Sep  4 20:47 orion_20170904_2040_summary.txt

-rw-r--r-- 1 root root     2931 Sep  4 20:47 orion_20170904_2040_trace.txt

-rw-r--r-- 1 root root      104 Sep  4 20:53 orion_20170904_2047_iops.csv

-rw-r--r-- 1 root root      104 Sep  4 20:53 orion_20170904_2047_lat.csv

-rw-r--r-- 1 root root       60 Sep  4 20:53 orion_20170904_2047_mbps.csv

-rw-r--r-- 1 root root      319 Sep  4 20:47 orion_20170904_2047_summary.txt

-rw-r--r-- 1 root root     2227 Sep  4 20:53 orion_20170904_2047_trace.txt

-rwxr-xr-x 1 root root 46350238 Sep  4 20:34 orion_linux_x86-64

-rw-r--r-- 1 root root       10 Sep  4 20:39 orion.lun

2)xxx.csv 檔案内容示例

# cat orion_20170904_2047_iops.csv

Large

/Small

,      1,      2,      3,      4,      5

0,     39,     48,     53,     54,     56

#

#

# cat orion_20170904_2047_summary.txt

ORION VERSION 11.1.0.7.0

Commandline:

-run advanced -size_small 4 -write 100 -verbose

This maps to this

test

:

Test: orion

Small IO size: 4 KB

Large IO size: 1024 KB

IO Types: Small Random IOs, Large Random IOs

Simulated Array Type: CONCAT

Write: 100%

Cache Size: Not Entered

Duration

for

each Data Point: 60 seconds

3)xxx.csv 檔案轉換成 Numbers 圖形化

國内外公有雲對比:功能介紹、性能測試

Orion測試結果IOPS,機關:操作/s,數字越大越好

IOPS名額對于資料庫類型的應用來說十分關鍵。

國内外公有雲對比:功能介紹、性能測試

圖中橫軸代表的是采用Orion測試時并發線程數,或者叫IO隊列深度。Orion測試IO性能的時候,會開啟多個線程,每個線程循環進行IO操作。這樣,當并發線程數多的時候,系統的IO請求會排隊,能夠進一步提升IO性能。當并發線程數大到一定程度時,比如20,系統的IO性能會飽和。在本次測試中,我們使用Orion預設的測試方法,即并發線程數在1-5之間變化

  • 從資料盤的結果來看,Azure最好,并發線程數為5時,讀寫IO都可以達到800
  • 阿裡雲其次,讀接近800,寫有400多
  • AWS最不穩定。AWS官方的說法是提供100左右的IOPS,如果其他使用者較閑,其IOPS也可以達到幾百上千。從結果來看,AWS的IO性能在讀寫方面很不均勻,寫很快而讀很慢。結合網絡上的資料來看,AWS的IO性能随時間、機型變化很大。顯然,由于IO性能不穩定,AWS的自帶磁盤是無法滿足IO密集型應用需求的,是以AWS專門推出了一個IOPS存儲來保證IOPS,而這種存儲價格較高

作為對比,普通一塊7200轉的伺服器硬碟(SATA盤)的IOPS一般為100左右,而存儲專用的15000轉的光纖盤IOPS可以達到200。是以,Azure的資料盤要比單塊伺服器硬碟快的多,基本上達到了一個小規模盤陣的處理能力

另外,本地臨時盤的性能,要比持久化磁盤的性能強很多。臨時盤使用了SSD來提升IO性能  

 雲平台 本地臨時盤
1690
6302

吞吐量,機關MB/s,數字越大越好

國内外公有雲對比:功能介紹、性能測試

可以看出Windows Azure性能最好,AWS和阿裡雲類似。由于需要做持久化,所有的資料盤流量都會經過網絡,而公有雲一般不會用光纖網絡這種存儲專用通道,這制約了資料盤的吞吐量,幾十兆/s的性能基本和普通伺服器硬碟的性能類似。作為對比,本地臨時盤無需網絡資料拷貝,性能超高

565
366

延遲,機關ms,數字越小越好

國内外公有雲對比:功能介紹、性能測試

在資料盤部分,Azure的讀寫延遲都在10ms以内。阿裡雲的讀延遲偏高。而AWS的讀延遲更是高的誇張,而寫延遲又非常低

臨時盤性能大大超越資料盤,小于1ms的延遲一定是使用了緩存或者SSD技術

0.64ms
0.30ms

上面的測試都是在某一時間點的測試。我們知道虛拟機是運作在共享的硬體上,單一時刻的性能并不能展現虛拟機的綜合性能和性能的穩定性。是以,我們還需要考察IO性能随時間變化的情況。

下面的測試,是連續24小時測試所有的虛拟機得出的性能結果

IOPS,數值越大越好,橫軸是時間

國内外公有雲對比:功能介紹、性能測試

結果顯示:  

1. AWS的性能确實十分不穩定,寫性能最大和最小差5倍

2. 阿裡雲的性能相對穩定些,不過每天有一個時間性能會突然變差,這就是每天的晚上12點左右,阿裡對虛拟機進行統一備份

3. Azure的性能最穩定,而且讀寫性能均衡

吞吐量,機關MB/s,數值越大越好,橫軸是時間

國内外公有雲對比:功能介紹、性能測試

結果顯示:

1. Azure的性能最好,且穩定,24小時内都在60MB-110MB之間

2. AWS較不穩定

3. 阿裡雲每天會有一個性能低谷(備份時間)

延遲,機關ms,數值越小越好,橫軸是時間

國内外公有雲對比:功能介紹、性能測試

結果顯示:  

1. Azure最穩定,讀寫均衡,24小時内延遲都在5ms左右

2. AWS最不穩定

3. 阿裡雲每天會有一個突發性能下降(備份時間)

測試總結

本文比較了AWS,阿裡雲和Azure三個公有雲平台的OS性能和磁盤IO性能,資料結果顯示:

1) OS性能,同樣規格的虛拟機Azure性能最好,阿裡雲次之,AWS性能僅有Azure和阿裡雲的幾分之一

2) IO性能,對于普通資料磁盤,Azure的性能最好,最穩定,阿裡雲次之。

AWS的普通磁盤性能非常不穩定,僅适合于順序通路(追求吞吐量),

而對于随機通路,必須使用價格更高的IOPS型磁盤。

另外,要使用IOPS磁盤,必須使用專用型号的虛拟機(價格也高)

選購結論

本文都是米撲科技調研對比的成果,目的是選購成本效益高的雲伺服器:

1) 國内雲伺服器,選購騰訊雲、阿裡雲、金山雲(大米雲折扣非常大)

2) 國外雲伺服器,選購AWS,其國外的價格比國内阿裡雲、騰訊雲在國外提供的雲伺服器價格都低很多

3) 全球雲伺服器價格對比,請見米撲部落格:

參考推薦:

國内公有雲對比 - 功能篇

 (CSDN)

AWS與阿裡雲在國内使用的對比評測 阿裡雲網絡系列之經典網絡和專有網絡 AWS、Google、Apple雲端當機背後的故事

如果在阿裡雲官方買産品包括:雲伺服器,雲資料庫等,  參考下面這些建站幹貨:

阿裡雲産品2000元代金券領取位址:

阿裡雲雲小站

阿裡雲官方最新活動公布位址:

阿裡雲官方最新活動 (實時更新)

阿裡雲伺服器執行個體規格組位址:

官方雲伺服器執行個體

阿裡雲學習路徑位址:

阿裡雲學習路徑

在購買過程中有任何不懂,都可以撥打官方熱線進行咨詢。售前電話:95187轉1