鳥(niǎo)哥(惠新宸)
性能為什么很重要
鳥(niǎo)哥說(shuō):“應(yīng)用性能最重要的不僅僅是執(zhí)行快的問(wèn)題,它包含很多方面的問(wèn)題,比如說(shuō)服務(wù)器負(fù)載,吞吐都屬于性能范疇。”
鳥(niǎo)哥認(rèn)為,在關(guān)注應(yīng)用性能之前,應(yīng)該先考慮應(yīng)用的正確性、穩(wěn)定性和安全性,然后再考慮性能。我們都需要去想一個(gè)問(wèn)題,我們關(guān)注的性能到底是什么?是速度還是投入產(chǎn)出比,是系統(tǒng)的優(yōu)化性還是代碼的正確性,確定方向以后再開(kāi)始優(yōu)化。
而我們的系統(tǒng)到底有沒(méi)有問(wèn)題?一個(gè)高性能的系統(tǒng)往往是最漂亮的系統(tǒng),一般來(lái)說(shuō),當(dāng)你接手一個(gè)系統(tǒng)準(zhǔn)備開(kāi)始優(yōu)化時(shí),憑經(jīng)驗(yàn)來(lái)講,一個(gè)從誕生到目前為止從來(lái)沒(méi)有真正進(jìn)行性能優(yōu)化的系統(tǒng),優(yōu)化后的提升率可以達(dá)到30%以上,30%是對(duì)于大小公司都是一個(gè)很可觀的數(shù)字。
永遠(yuǎn)不要微優(yōu)化,永遠(yuǎn)不要憑主觀臆測(cè)去優(yōu)化
鳥(niǎo)哥說(shuō):“性能優(yōu)化不應(yīng)該是一個(gè)人或者一個(gè)團(tuán)隊(duì)的事。”
鳥(niǎo)哥給我們舉了個(gè)很有趣的例子,一個(gè)師兄創(chuàng)業(yè)說(shuō)他們以前系統(tǒng)是CTO一個(gè)人做的,這個(gè)CTO特別有技術(shù)情懷,怎么個(gè)技術(shù)情懷法?這個(gè)人后來(lái)辭職了,就再也找不到人接手這個(gè)系統(tǒng)。不僅是系統(tǒng),所有的系統(tǒng)周邊的事情,例如測(cè)試,上線,運(yùn)維,開(kāi)發(fā)習(xí)慣等等都需要成本的,這些都不該是某個(gè)人或者某個(gè)團(tuán)隊(duì)自己的事。
當(dāng)你確定系統(tǒng)需要性能優(yōu)化時(shí),你需要一個(gè)標(biāo)準(zhǔn)來(lái)衡量?jī)?yōu)化的過(guò)程,同時(shí)也需要定出優(yōu)化步驟,把性能優(yōu)化過(guò)程拆解成已周或月為單位的時(shí)間段,而不是干了大半年不知道結(jié)果如何,當(dāng)然最重要的是我們需要確認(rèn)我們正在進(jìn)行的性能優(yōu)化會(huì)不會(huì)對(duì)原來(lái)的系統(tǒng)有影響。沒(méi)有人能確保自己的代碼絕對(duì)正確,所以永遠(yuǎn)不要憑主觀臆測(cè)去優(yōu)化。
什么時(shí)候開(kāi)始,什么時(shí)候結(jié)束
鳥(niǎo)哥說(shuō):“性能優(yōu)化應(yīng)該從業(yè)務(wù)層面到管理層,再往下發(fā)展到不同層面,最上面的業(yè)務(wù)層優(yōu)化收益往往最大。”
我們做優(yōu)化最重要原因是要以最小代價(jià)獲得最大效益,比如說(shuō)原來(lái)調(diào)用了7、8個(gè)API,優(yōu)化完以后發(fā)現(xiàn)可以合并運(yùn)行,這就是最大的收益,我們一定從消耗最大的方向入手。
業(yè)務(wù)層面怎么優(yōu)化?必須對(duì)業(yè)務(wù)非常熟悉,安排一個(gè)獨(dú)立優(yōu)化部門(mén)并沒(méi)有太大的作用。參與優(yōu)化的人員每一個(gè)人都寫(xiě)日志非常必要的,從系統(tǒng)環(huán)境開(kāi)始入手做優(yōu)化,首先配置有沒(méi)有問(wèn)題,再往下是模塊合適與否,最后拓展到不同層面上,這才是從上往下優(yōu)化過(guò)程,這個(gè)過(guò)程一直持續(xù)到你滿意為止。
建立一個(gè)“系統(tǒng)”去優(yōu)化你的系統(tǒng)
鳥(niǎo)哥說(shuō):“運(yùn)維的核心是可視化,監(jiān)控非常重要,類(lèi)似服務(wù)器監(jiān)控,性能監(jiān)控等。而運(yùn)維監(jiān)控核心是把系統(tǒng)中存在的各種問(wèn)題匯成一個(gè)非??梢?,非常易于去看的東西。”
整個(gè)性能優(yōu)化最核心地方是什么?要有一個(gè)監(jiān)控或者報(bào)告,告訴你哪里出了問(wèn)題。系統(tǒng)優(yōu)化最大問(wèn)題不是怎么去優(yōu)化,而在于你發(fā)現(xiàn)這個(gè)地方有問(wèn)題。一個(gè)好的團(tuán)隊(duì)需要構(gòu)建一個(gè)能一覽全局的系統(tǒng)來(lái)監(jiān)測(cè)性能,第一時(shí)間得到的信息越多,排除問(wèn)題可能性就越快。
然而這樣的系統(tǒng)是非常難做的,但是效果會(huì)非常明顯,如果你有這樣的系統(tǒng),你的應(yīng)用一定會(huì)是高效。而聽(tīng)云是國(guó)內(nèi)應(yīng)用性能管理領(lǐng)域的佼佼者,推薦大家去使用。
鳥(niǎo)哥說(shuō)“做應(yīng)用性能優(yōu)化工作應(yīng)該是很有意思,很有成就感的一件事”,鳥(niǎo)哥說(shuō)“性能優(yōu)化不是一次性的事”,鳥(niǎo)哥說(shuō)了很多很多,而每一次提及應(yīng)用性能管理及優(yōu)化時(shí),仿佛都有說(shuō)不完的故事,然而時(shí)間不允許我們過(guò)多的駐足,關(guān)于性能優(yōu)化那些事兒,我們還是留到下一次大講堂上再說(shuō)吧。
鳥(niǎo)哥演講課件下載:http://bbs.tingyun.com/forum.php?mod=viewthread&tid=62&extra=