專訪淘寶系統分析師蔣江偉:工程師請有承擔的勇氣
原創【51CTO獨家特稿】現在各種網站對著用戶和流量規模的逐年成倍增長,前臺系統承受的壓力也隨之翻倍增加。如何緩解這種壓力呢?目前有兩種方法。***種方法,增加前臺系統服務器的數量,在初期,通過不斷增加服務器數量進行擴容,確實可以緩解這種壓力。但是當服務器數量達到一定數量、一定規模之后,成本就成了一個很大的問題,于是就要啟動第二種方法——優化,性能優化。
優化,大家都在說優化,現在各種系統都要優化,何時著手優化?優化時,需要注意什么?會不會對系統穩定性有影響?帶著這一系列的問題,51CTO的記者在2011年QCon大會上,采訪了淘寶網資深系統分析師蔣江偉先生。
51CTO:Java查詢系統的性能優化瓶頸是否有什么預兆或特征,如何找到瓶頸所在?
蔣江偉:其實找瓶頸并沒有想象中那么難。
首先可以大塊大塊的找,利用一些工具可以很快的幫工程師找到大的瓶頸在哪里,比如:瓶頸是由CPU導致的或是一些I/O導致的。
其次,對具體的細節,可能要運用到工程師的經驗,當然也有一些工具可以幫助查找。淘寶有一些自己的小工具,利用這些小工具可以分析出每個Java類消耗CPU的時間,未來我們可能還會做一些內存方面的分析。
但是大部分還是要依靠工程師的經驗,由每個工程師自己來判斷小的瓶頸在哪里。工具大部分是給新人用的,可以幫助他們快速找到。
51CTO:找到瓶頸,做優化。做優化,需要注意什么?
蔣江偉:這里講講我們的經驗吧。淘寶網可以說是一個不能出問題的網站。在外界看來,淘寶出了問題了,影響了別人的正常交易、買賣,恐怕會有很多人說:No。那么,淘寶還要不要優化?答案是肯定的,淘寶必須優化。優化之后,出了問題要怎么辦?所以,我們做優化最需要注意的是:需要膽量。優化必須要做,所以要有承擔結果的勇氣,要有放手一搏的膽量。即使中途出錯啦,我們要承認自己的錯誤。
但是,大家都不想出錯,如何避免出錯呢?很重要的一方面的人員的素質,除此之外,還需要一些系統的工作。我們推薦優化的時候,要一點一點的優化。但是當遇到必須大規模優化時,比如對框架的優化,除了要做好Beta測試之外,還要做好回滾。一旦出了問題,馬上進行回滾。其實優化不是什么深奧的事物,只要有膽量去做,基本就不會有什么問題。
51CTO:優化是否對穩定性有影響?
蔣江偉:優化與穩定性關系不是很大。甚至可以說優化對系統的穩定性還有好處。單機的容量越高,處理事務的能力就越好。當然優化還能會導致系統穩定性出現一些問題,出了問題怎么辦?回滾。優化肯定有風險,但是好處遠遠大于壞處。所以要有勇氣,勇敢做下去。
51CTO:如何增強網站的持久穩定性?
蔣江偉:去年,有人說淘寶的穩定性一定要做,但是要怎么做?答:監控。除了監控呢?答:代碼的容錯能力和系統的容錯能力一定要加強。經過我們研究,穩定性是有一些規律的。可以用“穩定性”這么一個大系統來保障淘寶系統的穩定性。去年針對穩定性,我們做了三件事:
***件,容量。我們對所有系統的容量做了預估,只有了解了自己系統的容量,才能在高峰時做出最及時的應對措施。
第二件,依賴性。淘寶的每位工程師要大概了解自己負責的系統的依賴關系,做出系統性的依賴關系。
第三件,了解整個系統。運行時系統的一個監控,數據,包括操作系統,中間界得,硬件的,還有一些業務上的,都要透明出來。
我們產品技術部的穩定性做到不可用的時間控制在140分鐘內。全年事故導致的不可用只有24分鐘。
51CTO:您能對工程師說些什么嗎?
蔣江偉:我就說兩個字:承擔。只有勇于承擔,才能讓人有勇氣,有承擔自己的錯誤的勇氣。有承擔錯誤的勇氣,就有去做事得勇氣。無論做什么事,只要是對的,就要去做,勇敢去做。出了錯誤,承擔錯誤,改正錯誤,這樣的人沒有人會去責怪。
#p#
編者語
蔣江偉先生在本次專訪中反復強調“承擔”二字。做優化,就要有做的勇氣,有承擔錯誤和壓力的勇氣,只有這樣做才有繼續做下去的勇氣,才能把優化做到***。請記住“承擔”二字。
【編輯推薦】