足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

運維中性能優化的常見模式及趨勢
2016-02-20 19:34:25   來源: 山丘 高效運維    評論:0 點擊:

本文介紹運維中的性能優化的價值、應用優化的模式和特點以及發展的幾個趨勢,供大家參考!

作者介紹

\

陳顯銘(螞蟻金服技術專家,藝名山丘,公眾號:loopfork)

專注碼磚七年之久,喜歡碼磚,喜歡扔錘子(山丘之王出自寒冰王座)。?;燠E中生代技術群(公眾號:freshmanTechnology)、高效運維(公眾號:greatops)等高大上社群。專注高可用、分布式、性能優化、穩定性、高效運維等方向。自我評價:不算出名,但是對于技術有一點點情懷,愛交友,歡迎技術討論。

性能優化的價值

\

從上圖可以看出幾個優點:

◆ 成本降低

◆ 穩定性提升

◆ 用戶體驗體驗提升

性能優化的缺點有:維護成本增加,代碼可能變復雜,結構可能變復雜,技術??赡茏儚碗s。

性能優化的兩種模式

個人總結,性能優化整體上可以分為兩類:單應用優化和結構型優化。

單應用優化,關注單系統瓶頸,通過解決單系統瓶頸提升性能。

結構型優化,通過改造鏈路結構和配比,進行整體性能的優化。

單應用優化常見步驟

優化基本思路(閉環):

1.確定性能瓶頸/熱點;

2.確定優化方案;

3.實施、反饋優化情況。

確定性能瓶頸/熱點的常見方法:

1.性能壓測:通過工具/人肉等方式,量化運行時的性能情況。

2.業務/代碼梳理:通過代碼走讀,發現資源消耗熱點(牛B的人可以這么干);通過統計代碼對資源的操作,量化代碼對資源的消耗(比如一個業務操作會進行多少次數據庫調用,會進行多少次服務運算等方式)。

壓測時常觀察的內容及工具有(舉例Java應用):

1.壓測工具:jmeter

2.內存的使用情況:mat,gc日志,vmstat

3.IO情況:iostat

4.網絡情況:netstat

5.熱點代碼:jprofile,btrace,jstack,jstat

6.CPU情況:top

優化的常見手段或模式:

1.靜態化:動態數據和靜態數據分離。

2.異步化:使用異步化減少主流程中的非關鍵業務邏輯。

3.并行化:使用多線程并發處理,縮短響應時間。

4.內存優化:減少對象大小,減少對象創造,數據模型優化。

5.去重復運算:業務邏輯優化,或者使用緩存。

6.減少數據庫操作:數據冗余,數據緩存等。

7.縮短數據庫事務:短事務,異步化,最終一致性等方式可以考慮。

8.精簡代碼邏輯:去除冗余代碼,諸如過度設計檢查等代碼。

9.精簡日志操作:日志大小要關注,注意IO上的瓶頸;日志太多,說明生成的string也會多,也增加了gc負擔。

等等。

結構型優化常見步驟

此部分介紹的內容,在很多網站架構變遷的文章中介紹過,這里通過圖的方式展現出來。

每個階段都有適用的軟件架構,基于成本、建設復雜度、維護成本的考慮,不必強求一開始建設很完整的技術體系。

個人認為,性能是驅動應用體系研究的重要驅動力,可以通過下面應用結構演進看出來。

1.單應用時代常見瓶頸先發生在DB。 

\

2.單應用時代常見第一個解法是使用緩存(偏向應用級別緩存)。

\

3.單應用時代常見第一個解法是獨立緩存服務(集中式緩存,如memcache)。

\

4.單應用集中式部署帶來應用集群處理能力提升。

\

5.單應用集中式部署部署后的DB瓶頸。

\

6.單應用集中式部署部署后的DB瓶頸解法(數據庫拆分、讀寫分離)。

\

7.服務化拆分應對更大范圍請求量。

\

8.服務化集群部署模式。

\

兩個結構優化的案例

處理單點/網絡瓶頸的可行方式

\

處理數據庫連接池瓶頸的可行手段

\

總結:性能/應用優化的幾個趨勢

\

【編輯推薦】

  1. 創業型小公司如何做好日常的監控運維
  2. PaaS時代來臨,運維人要做哪些準備工作
  3. 技術專題?智能化運維
  4. 運維人,你應該具有的五大O2O思維
  5. 中小企業運維需要重視日志分析
【責任編輯:火鳳凰 TEL:(010)68476606】

相關熱詞搜索:運維 性能優化 模式

上一篇:中小企業運維需要重視日志分析
下一篇:大眾點評高可用性系統運維經驗分享

分享到: 收藏