只有採用有效的效能調優手段,才能使得效能調優達到事倍功半的效果。近日,個人部落格liguanglei中發布了一篇關於有效效能調優建議的文章,該篇文章是作者閱讀《效能調優:綜合指南》的讀書筆記。作者從影響系統效能的演算法、演算法執行環境與所需資源以及演算法和環境資源的互動等因素講述了效能調優的一些建議。新手能夠直接根據這些建議進行系統調優,老手也可以拿來當作調優的參考。現對這些建議進行乙個全面的梳理,以供讀者參考和學習,具體內容如下:
\\\\
演算法優化是效能區域性優化的首選, 並常採用各種效能監控軟體來度量cpu時間、記憶體佔用率、函式呼叫次數以問題定位,然後實施各種調優方法,如優化迴圈、利用空間換時間、採用合適的資料結構等。但是演算法本身的優化只能夠幫助大家消除一些明顯的程式設計細節引起的瓶頸,尤其單單通過演算法優化的手段還不能完全解決效能問題,且具有非常大的難度。
\\\\
執行環境與資源包括各種軟硬體平台,硬體環境包括cpu、記憶體、磁碟以及網路等。最簡單且最省事的調優方法是優化硬體資源,使用快速計算資源代替慢速計算資源,提公升資源的計算能力。
\\ 優化硬體資源的方式包括:
\\
\\\
軟體環境包括作業系統、資料庫、中介軟體等。軟體環境調優的成本要相對較高, 並且工作量很大,如從windows平台遷移到linux 平台、從資料庫a切換到資料庫 b、從ejb 切換到 spring等。這類調優見效快,但受制於預算和硬體本身的限制。由於資源始終是有限的,隨著資源的消耗,仍然存在效能瓶頸。
\\ 3.優化演算法和資源間的互動
\\ 當前各種調優實踐最集中的領域是優化演算法和資源間的互動,如減少單台伺服器(或單位計算資源)的處理量、充分利用系統資源、減少不必要的計算、減少不必要的io等。
\\ 具體內容如下:
\\
\\\
一旦按上述維度處理好了,大家還可以在所有維度上應用負載均衡,把訪問量分散到不同伺服器。
\\
\\\
最後,作者總結指出快取是減少不必要計算和io的重要手段,快取的設計主要是根據資源變化頻率對資源進行分類,比如動靜分離等;其前提是恰當的狀態管理、分離無狀態的邏輯和有狀態的邏輯,但會付出對一致性的一定妥協和運維的複雜為代價。快取的適用場景包括熱點不均衡、有效時間不太短、一致性犧牲程度可接受。作者還指出以上所有優化手段可以組合使用,有衝突時再做權衡。
\\ 作者還推薦了一些參閱文章:有關壓力測試、負載測試的《重述:效能、容量、負載以及壓力測試》和《效能調優技術的幾個角度》。此外,有興趣的讀者還可以參閱酷殼陳皓發表的一篇題為《效能調優攻略》的文章。
\\ 感謝郭蕾對本文的審校。
\\
關於有效的效能調優的一些建議
只有採用有效的效能調優手段,才能使得效能調優達到事倍功半的效果。近日,個人部落格liguanglei中發布了一篇關於有效效能調優建議的文章,該篇文章是作者閱讀 效能調優 綜合指南 的讀書筆記。作者從影響系統效能的演算法 演算法執行環境與所需資源以及演算法和環境資源的互動等因素講述了效能調優的一些建議...
關於有效的效能調優的一些建議
只有採用有效的效能調優手段,才能使得效能調優達到事倍功半的效果。近日,個人部落格liguanglei中發布了一篇關於有效效能調優建議的文章,該篇文章是作者閱讀 效能調優 綜合指南 的讀書筆記。作者從影響系統效能的演算法 演算法執行環境與所需資源以及演算法和環境資源的互動等因素講述了效能調優的一些建議...
關於有效的效能調優的一些建議
只有採用有效的效能調優手段,才能使得效能調優達到事倍功半的效果。近日,個人部落格liguanglei中發布了一篇關於有效效能調優建議的文章,該篇文章是作者閱讀 效能調優 綜合指南 的讀書筆記。作者從影響系統效能的演算法 演算法執行環境與所需資源以及演算法和環境資源的互動等因素講述了效能調優的一些建議...