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