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