相信很多個人和創業企業,跟我一樣,面對幾十家國内外雲伺服器,不知選擇哪一家?
問題導讀
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-unixbenchstyle="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.htmlstyle="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) 運作輸出的結果:
|
2)運作後的目錄結構
|
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,啟用了超線程
|
2. 阿裡雲
盡管測試采用的阿裡雲主機配置不如Azure(主要是記憶體小一些),但是其最終性能卻接近Azure,這說明阿裡雲采用的硬體比較新,另外,沒有用一台實體機去支援大量虛拟機
從結果看,阿裡雲采用的是Intel Xeon E5-2420 CPU,主頻1.9G,啟用了超線程
|
3. Windows Azure分數最高
從結果看,使用的是AMD 4171HE CPU,沒有超線程
|
結論: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.gzstyle="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
運作輸出界面如下:
|
7. 執行寫測試,該測試會進行4K大小的随機寫和1M大小連續寫
./orion_linux_x86-64 -run advanced -size_small 4 -write 100 -verbose
|
這個測試會進行幾組8K大小的随機讀寫和1M大小的連續讀寫測試。
前者用來測定IOPS能力,後者測定吞吐量
測試完成後,會發現生成并不是圖形化的網頁,而是許多xxx.csv檔案,需要用 Excel 或 Number 轉化打開
1)xxx.csv 檔案清單
|
2)xxx.csv 檔案内容示例
|
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