新聞中心
透過SPECvirt 談云測試的背景、原理及實操
作者:梁偉 2015-08-31 11:00:10
云計算 本文先從一個很小眾的角度來看云測試:云測試之SPECvirt,進一步闡述關(guān)于云測試的背景、原理及實操如果有興趣,希望這些“干貨”對大家的工作能有些許幫助。

六枝ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
大家好,我今天跟大家分享的topic是云測試。其實這是一個很大的話題,從商業(yè)化的APM公司,如云智慧、聽云、OneAPM,到開源的解決方案pinpoint, perfKit, cloudcmp都屬于這個范疇。
那今天我結(jié)合前一兩個月的實操經(jīng)驗,先從一個很小眾的角度來看云測試:云測試之SPECvirt。如果有興趣,以后再找機會分享云測試之APM、云測試之Benchmark。說到這個SPECvirt,既有很強的理論,又有很具體的實操。希望這些“干貨”對大家的工作能有些許幫助。
我的分享分為三大部分:
- 云測試的背景(先給大家概述下)
- 云測試的原理(這部分是比較枯燥些的理論)
- 云測試的實操(這部分是比較Detail的實操)
先說說云測試的背景
說SPECvirt之前必須先提一嘴SPEC
SPEC是Standard Performance Evaluation Corporation(標準性能評估機構(gòu))的簡稱,是一個全球性的、權(quán)威的、代表目前業(yè)界標準的第三方應用性能測試組織。成立于1988年,是由斯坦福大學、清華大學、微軟、等全球幾十所知名大學、研究機構(gòu)、IT企業(yè)組成,得到Intel、IBM、Huawei等支持和全球眾多用戶的廣泛認可。
SPEC測試體現(xiàn)了軟件、硬件、虛擬化、云計算、中間件平臺的綜合性能和成本指標,被金融、電信、證券等關(guān)鍵行業(yè)用戶作為選擇IT系統(tǒng)一項權(quán)威的選型指標。比如銀行證券交易系統(tǒng)、保險公司綜合業(yè)務系統(tǒng)、電信計費系統(tǒng)、大中型電子政務系統(tǒng)等。
然后咱們過渡到SPEC的拳頭產(chǎn)品SPECvirt@2013
隨著企業(yè)云計算和虛擬化程度不斷提高,SPECvirt2013是業(yè)界公認的虛擬化云數(shù)據(jù)中心場景下端到端系統(tǒng)組件性能基準,包括服務器硬件、虛擬化平臺、客戶機操作系統(tǒng)和應用業(yè)務軟件. SPECvirt2013模擬了虛擬化和數(shù)據(jù)中心服務器整合場景下的通用負載,以評價整體系統(tǒng)的性能擴展能力。哪些通用的云計算數(shù)據(jù)中心負載呢?
- SPECweb:模擬web server、file server、infrastructure server的典型業(yè)務負載
- SPECjAppserver:模擬application server、database server的典型業(yè)務負載
- SPECmail:模擬mail server的典型業(yè)務負載
- SPECcpu:模擬間歇性高并發(fā)的batch server負載
下面給大家Show一下SPEC家族產(chǎn)品的價格:
可以看到SPECvirt官方是3千美刀一套,non-profit也得750美刀,還是比較貴的。下面我們就分析下,它為啥值這么多錢?里面的價值是啥?
第二部分云測試的原理
個人認為:SPECvirt***的價值在于模擬實現(xiàn)了虛擬化云計算數(shù)據(jù)中心里典型的業(yè)務負載。試問我們做云的目的是什么?不是為了做基礎設施而做基礎設施,而是為了更好的服務于云上的業(yè)務和應用。那么吃透了云化業(yè)務模型的精髓,不僅是能夠做云測試,對于現(xiàn)有云基礎設施的調(diào)優(yōu)也指明了方向,就看你怎么用了。
接下來,我先簡要介紹下SPECvirt的架構(gòu),SPECvirt代表了業(yè)內(nèi)公認的數(shù)據(jù)中心虛擬化云業(yè)務的典型負載。直接上圖吧:
這張圖是SPECvirt單TILE的構(gòu)成,涵蓋了從硬件、到虛擬化平臺、到Guest OS、再到上層業(yè)務的端到端性能。其中上層業(yè)務包含6種類型的典型虛擬化服務器和對應的客戶端:
- 基礎設施服務器infraserver;
- 網(wǎng)頁服務器webserver;
- 郵件服務器mailserver;
- 中間件服務器applicationserver;
- 批處理服務器batchserver;
- 數(shù)據(jù)庫服務器dbserver。數(shù)據(jù)中心服務器整合比高時只需要增加TILE數(shù)量進行模擬即可
接下來剖析下典型的云化業(yè)務模型是啥?稍微提示下,這里面的理論可能會比較枯燥,所以我只略講2個比較簡單的業(yè)務模型。
#p#
SPEC webserver的電子商務業(yè)務負載模型
這個業(yè)務模型是基于一個真實電子商務網(wǎng)站的日志文件分析出來的,包含平均頁面大小、圖片大小、用戶訪問頻率、網(wǎng)購表單等,說白了就是再現(xiàn)了蘋果商店:store.apple.com。
整個業(yè)務過程可以被分為三個階段:(1) 瀏覽;(2) 定制化;(3) 購買,共包含13個主要動態(tài)頁面,通過建立了基于上述動態(tài)頁面轉(zhuǎn)換的馬爾科夫鏈Markov Chain模型來刻畫整個電子商務業(yè)務。
(1) “瀏覽”階段包括的動態(tài)頁面有:index(如選擇地域、客戶類型等),search(如商品搜索),browse(如羅列產(chǎn)品鏈接),browse_prodectline(如顯示特定產(chǎn)品信息),productdetail(如顯示特定產(chǎn)品細節(jié))。
直接上Markov Chain模型圖
稍微解釋下上圖,從頂端狀態(tài)3-browse_prodectline(如顯示特定產(chǎn)品信息)轉(zhuǎn)換到狀態(tài)4-productdetail(如顯示特定產(chǎn)品細節(jié))的概率是0.8,而反向轉(zhuǎn)換的概率則比較低;
(2) 第二個階段“定制化”階段包括的動態(tài)頁面有(就以在線訂購Apple Macbook Air為例吧):狀態(tài)5-Customerize1(如定制化CPU、內(nèi)存、硬盤等內(nèi)部固件),狀態(tài)6-Customerize2(如選擇質(zhì)保、服務和培訓等),狀態(tài)7-Customerize3(如增加網(wǎng)線、鼠標、轉(zhuǎn)換器等附件)。各狀態(tài)間的轉(zhuǎn)換關(guān)系也見上圖。
(3)類似的,第三個階段“購買”階段包括的動態(tài)頁面有:狀態(tài)8-cart(購物車管理),狀態(tài)9-login(購買前的登錄或者注冊),狀態(tài)10-shipping(填寫物流信息),狀態(tài)11-billing(填寫并驗證付款信息),狀態(tài)12-confirm(支付前確認所有上述信息)。比如,在上面基于動態(tài)頁面轉(zhuǎn)換的馬爾科夫鏈Markov Chain模型中,狀態(tài)10、11、12之間的狀態(tài)遷移概率都是95%。
此外,模型中也統(tǒng)計了與上面13個動態(tài)頁面對應的靜態(tài)內(nèi)容大小(如文字、圖片等),并按照一定的概率組合返回給最終用戶的網(wǎng)頁請求。比如,狀態(tài)4- productdetail動態(tài)頁面對應的靜態(tài)內(nèi)容大小分布為下表所示:
SPEC webserver的電子銀行業(yè)務負載模型
如果說電子商務業(yè)務模型模擬的是store.apple.com,那么電子銀行的業(yè)務模型則可以類比為中國銀行網(wǎng)上銀行www.boc.cn,因為這個數(shù)據(jù)是某銀行服務器約2個星期的日志,涵蓋約1千三百萬的業(yè)務請求。
這個銀行業(yè)務模型的要點我提煉了三部分:(1) 基于On-Off的用戶活動模型;(2) 基于Markov Chain的業(yè)務請求模型;(3) 用戶體驗約束。咱們分開簡述下:
基于On-Off的用戶活動模型是一個典型的冪律分布模型,即用戶以一定概率進入電子銀行網(wǎng)站后,經(jīng)歷一系列活動時段(也叫ON階段),ON階段之間是靜默期(OFF階段)。其中ON階段就是第二部分要講到的基于Markov Chain的業(yè)務請求模型,OFF階段要么離開系統(tǒng),要么再次進入ON階段,這個過程可用符合帕雷托分布刻畫,統(tǒng)計數(shù)據(jù)表明均值約為9秒。
基于Markov Chain的業(yè)務請求模型其實與前面電子商務業(yè)務負載模型的刻畫思路一樣,基于統(tǒng)計數(shù)據(jù)建模了用戶賬戶、賬單、轉(zhuǎn)賬、借貸四大類業(yè)務供16種狀態(tài)的遷移概率以及每個狀態(tài)對應的流量大小。這里就不再貼長表了。
用戶體驗約束是指調(diào)度上述活動時同時要遵循一些QoE的指標限制,比如95%的響應在2~3秒內(nèi)返回是可以接受的。
小結(jié)一下比較枯燥的第二部分,我這里只是brief了SPEC webserver的電子商務和電子銀行業(yè)務模型,SPECvirt還有很多業(yè)務模型。比如SPECweb的支持類網(wǎng)站業(yè)務模型(類似奇虎360打補丁),SPECmail的郵件系統(tǒng)業(yè)務模型(模擬了500個用戶的查新、發(fā)送、刪除、搜索郵件等常規(guī)郵件操作),SPECjAPPserver的生產(chǎn)/供應鏈管理/庫存業(yè)務模型等等。這些真實有價值的業(yè)務模型為業(yè)務系統(tǒng)云化和基礎設施調(diào)優(yōu)將會提供重要參考。
今天的***一部分:云測試的實操,包括安裝部署、調(diào)錯調(diào)優(yōu)兩個小部分
(1) 先說安裝部署
SPECvirt 2013的安裝部署通常包括如下九個步驟:
- 制作BaseVM用于后續(xù)克隆;
- SPEC infraserver部署(核心是Webserver的后端文件服務器);
- SPEC webserver部署(搭建類似典型LAMP環(huán)境);
- SPEC mailserver部署(基于開源的 IMAP 和 POP3 郵件服務器Dovecot);
- SPEC dbserver部署(部署MySQL, or Oracle);
- SPEC appserver部署(基于開源J2EE應用服務器glassfish);
- SPEC batchserver部署(基于SPEC CPU套件);
- SPEC client部署;
- 多Tile環(huán)境搭建。
通常來說安裝部署過程一共需要配置近1K行Linux命令,整套環(huán)境搭建起來一般需要3~4天,不亞于命令行方式安裝OpenStack的復雜度。這里廣告下,經(jīng)過我們的自動化,整個安裝部署已從數(shù)天降低至數(shù)小時,工作效率提高10倍。
(2) SPECvirt的調(diào)錯還是比較麻煩的,因為牽扯到的組件太多,在我測試過的主流虛擬化引擎中,曾經(jīng)遇到httpd組件不全、時間不同步、Webserver臟數(shù)據(jù)、性能不足報錯等各種報錯進行Debug。而SPECvirt測試的調(diào)優(yōu)手段包括網(wǎng)卡SR-IoV、VM資源預留、物理核綁定等技巧,具體細節(jié)就不再累述了。不同虛擬化引擎的得分也是有差異的。
SPECvirt跑起來一次需要2個小時,上個圖感受下:
看不懂吧。通常重點關(guān)注Appserver的QoS值(***行***一位),Webserver的Fail數(shù)(第二行第7位)等。
分享人簡介:
智囊團分享人:梁偉(David),中國電信研究院,博士畢業(yè)于中科院計算所,曾任職中石油(北京)數(shù)據(jù)中心架構(gòu)師、華為(香港)諾亞方舟研究員,互聯(lián)網(wǎng)、云計算與數(shù)據(jù)中心的實踐者。
(聯(lián)系我可以通過郵箱:paolelw@foxmail.com或者QQ:99584051)
關(guān)于“智囊團”云計算領域討論群,周一至周五晚8點按照入群順序,分享行業(yè)干貨,進行討論。入群需實名制。有興趣可以加微信:aclood
本文來源:云頭條
本文標題:透過SPECvirt談云測試的背景、原理及實操
當前URL:http://www.dlmjj.cn/article/dhcgihh.html


咨詢
建站咨詢
