系統性分析效能問題與調優方法

2021-09-17 18:59:25 字數 1146 閱讀 9005

陳皓(@左耳朵耗子)在酷殼分享了一篇有關效能調優的博文,系統性分析了有關系統效能條件、效能瓶頸問題定義與定位,以及效能調優方法經驗。此前作者也曾分享過關於效能優化話題的兩篇博文:\

最近的這篇有關效能調優的博文中,作者首先提出「要進行優化,先得找到效能瓶頸!」。為了對於效能瓶頸有一致的認識,作者對系統效能的條件做了簡單描述:

\

\

throughput ,吞吐量。也就是每秒鐘可以處理的請求數,任務數。\

latency, 系統延遲。也就是系統在處理乙個請求或乙個任務時的延遲。\

\

這兩個條件相互約束,他們的關係如陳皓所分享的:

\

\

throughput越大,latency會越差。因為請求量過大,系統太繁忙,所以響應速度自然會低。\

latency越好,能支援的throughput就會越高。因為latency短說明處理速度快,於是就可以處理更多的請求。\

\

關於系統效能測試,作者提到首先要定義latency的值,然後是開發測試工具,最後進入系統效能測試階段。同時,作者也分享了一些效能測試的經驗:要關注測試中latency取值的分布情況、峰值極限、系統正常執行的負載極限。對於效能測試,作者總結」效能測試是一細活和累活」。

\ 對於定位系統效能瓶頸,作者從兩個方面進行介紹:\

另外,作者提到:「對於效能測試,不同的throughput會出現不同的測試結果,不同的測試資料也會有不同的測試結果。所以,用於效能測試的資料非常重要,效能測試中,我們需要觀測試不同throughput的結果。」

\ 作者分享了自己的經驗,首先介紹了效能調優的策略:\

接著,作者系統總結分享了一些效能調優的方法,包括有:演算法調優(過濾演算法、雜湊演算法、分而治之和預處理)、**調優(字串操作、多執行緒調優、記憶體分配、非同步操作、語言和**庫)、網路調優(tcp調優、udp調優、網絡卡調優、其他網路效能)、系統效能(i/o模型、多核cpu調優、檔案系統調優)、資料庫調優(資料庫引擎調優、sql語句優化)。

\ 陳皓在文章的最後提到撰文的初衷是由於@**褚霸強推的highscalability.com上的這篇文章:big list of 20 common bottlenecks,大家也可以去了解一下。

\

系統效能調優

系統效能調優 效能測試分析人員經過對結果的分析以後,有可能提出系統存在效能瓶頸。這時相關開發人員 資料庫管理員 系統管理員 網路管理員等就需要根據效能測試分析人員提出的意見同效能分析人員共同分析確定更細節的內容,相關人員對系統進行調整以後,效能測試人員繼續進行第二輪 第三輪 的測試,與以前的測試結果...

系統效能調優

系統效能調優 效能測試分析人員經過對結果的分析以後,有可能提出系統存在效能瓶頸。這時相關開發人員 資料庫管理員 系統管理員 網路管理員等就需要根據效能測試分析人員提出的意見同效能分析人員共同分析確定更細節的內容,相關人員對系統進行調整以後,效能測試人員繼續進行第二輪 第三輪 的測試,與以前的測試結果...

系統效能調優感悟

1 減少事務的時間,盡快的結束事務。2 減少對資料庫的訪問,避免不必要的資料庫訪問。4 減少sql的巢狀呼叫,控制巢狀的層次。比如sql巢狀呼叫,自己呼叫自己。5 把查詢和更新的sql分開處理。不要一條sql包辦。6 查詢條件最好按照索引來寫,減少不必要的where條件,盡快的縮小查詢範圍。7 把一...