雙“11”戰(zhàn)績驚人的背后―性能

雙十一倒計時還有三天,你做好剁手的準(zhǔn)備了嗎丹擎?淘寶戰(zhàn)績驚人的背后到底會隱藏怎樣的手法呢?想知道就跟隨我來吧蛮穿。


2009年11月11日,淘寶首次推出11.11購物狂歡節(jié)单刁。該活動最早的出發(fā)點只是在“光棍節(jié)”當(dāng)天做一個屬于淘寶商城的節(jié)日府适,以提高其知名度檐春。隨著“雙十一”活動的深入,淘寶商城每年11月11號都戰(zhàn)績驚人疟暖。

雙十一

那么每次雙十一俐巴,面對如此高的一個負(fù)載和并發(fā)量,天貓在此階段都要評估哪些因素擎鸠?制訂哪些基準(zhǔn)缘圈?如何根據(jù)這些事先評估好的指標(biāo)對硬件和軟件進(jìn)行一個部署和規(guī)劃的呢?

天貓性能評測負(fù)責(zé)人绢涡,性能技術(shù)專家王德山這樣回答:

——從性能角度來講遣疯,幾個方面來看一下另锋,第一個就是說狭归,我們發(fā)起接受這個項目,他應(yīng)該開始是從大眾的需求室梅、產(chǎn)品、營運和開發(fā)角度上亡鼠,把測試作為出發(fā)點间涵,幫我們介入雙十一的挑戰(zhàn)。我們性能角度有這么幾個方面抗蠢,一個是我們首先會評估當(dāng)前的天貓這套應(yīng)用體系的性能和容量支撐思劳。第二個,因為產(chǎn)品是有需求的秽褒,我們對這個產(chǎn)品有準(zhǔn)確的評估威兜,會做一個比較有意思的預(yù)測,像10年票堵、11年逮栅、12年,它的數(shù)量級是在整個的跨越甚至跳躍的特纤。這對我們做性能測試或性能保障是一個比較大的挑戰(zhàn)侥加,正好接下來担败,我們聊聊這方面的行動:第一個就是對當(dāng)前性能的容量評估,包括當(dāng)前產(chǎn)品應(yīng)用代碼本身的健壯性吗货、是否有瓶頸宙搬;第二勇垛,因為大促是一個比較煩雜谆级、比較有挑戰(zhàn)的一個事情币砂,所以我們要做好一些保障亿蒸;再有一個,專業(yè)技能方面就是預(yù)案,一個預(yù)案是我們預(yù)知當(dāng)前所掌控的,另外一個是非掌控性的斥铺,我們要做一個后續(xù)的處理預(yù)案眠屎,出現(xiàn)類似異常的時候改衩,我們從應(yīng)用層面,或者從整個容量層面來做一個比較強的處理。最后就是說容量規(guī)劃,需要非常有效惋戏,目前的跨機房的棕孙,包括網(wǎng)絡(luò)流量的內(nèi)容钦铺,是一個重頭戲烫映。

這么復(fù)雜冈钦?

淘寶自創(chuàng)立以來,對性能測試要求也越來越高。從最初的系統(tǒng)框架性能測試绢片、TOP-API接口性能測試巢株,到現(xiàn)在的web應(yīng)用性能測試熙涤,進(jìn)軍無線性能測試領(lǐng)域祠挫,淘寶性能測試在不斷向前發(fā)展,橫向等舔、縱向都在不斷深入慌植、拓寬,不斷創(chuàng)新涤浇。

1. 性能測試通過標(biāo)準(zhǔn)

性能測試從需求只锭、設(shè)計、準(zhǔn)備喉誊、執(zhí)行到分析纵顾,最后需要判斷性能測試是否通過施逾。性能測試工程師最終需要考慮很多因素,判斷的標(biāo)準(zhǔn)相應(yīng)的也會有多個維度曹仗。 ?此處蠕搜,引入超時閥值和超時概率兩個概念。超時閥值妓灌,是指在框架模板中定義的超時時間轨蛤,當(dāng)服務(wù)器響應(yīng)超過該定義值時蜜宪,被測程序仍然響應(yīng)請求,同時Profiler會打印超時日志祥山。超時概率端壳,是指超時次數(shù)除以總請求次數(shù)所得的值。

天貓性能測試通過標(biāo)準(zhǔn)

性能測試通過標(biāo)準(zhǔn)枪蘑,是判斷性能測試通過與否的最全面的參考依據(jù)。隨著淘寶性能測試的發(fā)展岖免,這些標(biāo)準(zhǔn)估計也會隨之做出相應(yīng)改動岳颇,要求也會越來越嚴(yán)格。

2. 性能測試流程

性能測試是一個系統(tǒng)工程话侧,涉及到PDM、PM闯参、性能測試工程師瞻鹏、DBA、SCM鹿寨、OPS等多個角色新博。從性能測試申請,到性能測試設(shè)計脚草、性能測試環(huán)境赫悄、性能測試數(shù)據(jù)、性能測試執(zhí)行馏慨、性能測試調(diào)優(yōu)埂淮,都離不開這些角色的相互配合,共同協(xié)助写隶。因此倔撞,淘寶網(wǎng)確立了一整套性能測試流程,采取團(tuán)隊合作的方式慕趴,降低溝通成本痪蝇,提高工作效率。

天貓性能測試流程圖

3. 監(jiān)控工具

性能測試通常采用下列工具進(jìn)行監(jiān)控:

a. Profiler ?一個記錄log的類冕房,阿里巴巴集團(tuán)自主開發(fā)霹俺,嵌入到應(yīng)用代碼中使用。

b. Jstat ? 監(jiān)控java 進(jìn)程GC情況毒费,判斷GC是否正常丙唧。

c. JConsole ? 監(jiān)控java內(nèi)存、java CPU使用率觅玻、線程執(zhí)行情況等想际,需要在JVM參數(shù)中進(jìn)行配置培漏。

d. JMap ? 監(jiān)控java程序是否有內(nèi)存泄漏,需要配合eclipse插件或者M(jìn)emoryAnalyzer來使用胡本。

e. JProfiler ? 全面監(jiān)控每個節(jié)點的CPU使用率牌柄、內(nèi)存使用率、響應(yīng)時間累計值侧甫、線程執(zhí)行情況等珊佣,需要在JVM參數(shù)中進(jìn)行配置。 ?

f. Nmon ? 全面監(jiān)控linux系統(tǒng)資源使用情況披粟,包括CPU咒锻、內(nèi)存、I/O等守屉,可獨立于應(yīng)用監(jiān)控惑艇。

g. Valgrind ? 監(jiān)控C/C++程序是否存在內(nèi)存泄漏,基于linux環(huán)境拇泛。

h. Vmmap和ApplicationVerifier ? 監(jiān)控C/C++程序是否存在內(nèi)存泄漏滨巴,基于windows環(huán)境。


那么當(dāng)雙十天當(dāng)天上線后俺叭,項目出現(xiàn)性能故障恭取,卡死,這種情況阿里又是怎么解決的呢熄守?

王德山:這是一個“驚喜”秽荤,帶雙引號的驚喜。當(dāng)我收到這種信息的時候柠横,一個是通過郵件窃款,一個是通過手機短信、旺旺通知牍氛,要么線上報警晨继,要么線上故障,當(dāng)我們遇到這種報警的時候搬俊,作為性能測試人員紊扬,我們有責(zé)任去協(xié)助研發(fā)團(tuán)隊把這個事情搞清楚,大概有這樣幾個步驟:首先看唉擂,假如是一般的報警餐屎,我們?nèi)ゴ_認(rèn),排查問題解決掉玩祟。第二個腹缩,本身這個故障對業(yè)務(wù)產(chǎn)生了影響,造成了用戶損害,我們需要立馬修復(fù)這個BUG藏鹊。還有就是從性能測試角度润讥,有幾個方面:一個是我們?nèi)f(xié)助開發(fā)一起來定位,通過各種的一些分析技術(shù)盘寡,像分析日志抓取缺陷楚殿,包括這種報警時的一些異常、用戶的反饋竿痰,把這些信息收集起來脆粥,迅速的把它整理出有用的信息出來。第二個就是我們把這個問題在生產(chǎn)線上重現(xiàn)影涉,变隔,根據(jù)重現(xiàn)場景,捕獲代碼性能瓶頸常潮,進(jìn)而目標(biāo)性優(yōu)化。第三個就是楷力,當(dāng)我們把這些問題優(yōu)化了以后喊式,在線下做功能、性能的測試回歸萧朝,確定沒有問題了岔留,通過語法預(yù)發(fā)測試、打補丁的方式去把性能瓶頸解決检柬;杰茜萊就是故障的Review會議献联,我們要避免這種問題重演。

膜拜大神何址!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末里逆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子用爪,更是在濱河造成了極大的恐慌原押,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偎血,死亡現(xiàn)場離奇詭異诸衔,居然都是意外死亡,警方通過查閱死者的電腦和手機颇玷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門笨农,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帖渠,你說我怎么就攤上這事谒亦。” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵诊霹,是天一觀的道長羞延。 經(jīng)常有香客問我,道長脾还,這世上最難降的妖魔是什么伴箩? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮鄙漏,結(jié)果婚禮上嗤谚,老公的妹妹穿的比我還像新娘。我一直安慰自己怔蚌,他們只是感情好巩步,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桦踊,像睡著了一般椅野。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上籍胯,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天竟闪,我揣著相機與錄音,去河邊找鬼杖狼。 笑死炼蛤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝶涩。 我是一名探鬼主播理朋,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绿聘!你這毒婦竟也來了嗽上?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤熄攘,失蹤者是張志新(化名)和其女友劉穎炸裆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲜屏,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡烹看,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洛史。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惯殊。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖也殖,靈堂內(nèi)的尸體忽然破棺而出土思,到底是詐尸還是另有隱情务热,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布己儒,位于F島的核電站崎岂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闪湾。R本人自食惡果不足惜冲甘,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望途样。 院中可真熱鬧江醇,春花似錦、人聲如沸何暇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裆站。三九已至条辟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宏胯,已是汗流浹背羽嫡。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胳嘲,地道東北人厂僧。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓扣草,卻偏偏與公主長得像了牛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辰妙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容