01 如何學習Linux效能優化?

2022-05-30 10:03:09 字數 1706 閱讀 3612

沒找到有效的方法學原理

重要的是需要深入學下去,建立起效能的全域性觀

效能問題的根源太複雜,即不懂怎麼去分析,也不能抽絲剝繭找到瓶頸

只要理解應用程式和系統的少數幾個基本原理,再進行大量的實戰練習,建立起整體效能的全域性觀。

那麼大多數效能問題的優化就會水到渠成。

不需要了解每個元件的所有實現細節,只要能理解它們最基本的工作原理和協作方式。

這兩個指標是從應用負載的視角來考察效能,直接影響了產品終端的使用者體驗。

和它們對應的,是從系統資源的視角出發的指標,比如資源使用率飽和度等。

系統資源已經達到瓶頸,但請求的處理卻還不夠快,無法支撐更多的請求。

效能分析,其實就是找出應用或系統的瓶頸,並設法去避免或者緩解它們。從而更高效地利用系統資源處理更多的請求。這包含一系列的步驟,比如下面這六個步驟。

選擇指標評估應用程式和系統的效能

為應用程式和系統設定效能目標

進行效能基準測試

效能分析定位瓶頸

優化系統和應用程式

效能監控和告警

建立整體系統效能的全域性觀

包括:理解最基本的杰哥系統知識原理

掌握必要的效能工具

通過實際的場景演練,貫穿不同的元件

效能領域的大師布倫丹·格雷格(brendan gregg)動態追蹤工具 dtrace 的作者,下圖是他所描繪的linux效能工具圖譜:

這個圖是linux效能分析最重要的參考資料之一。它描述了在linux不同子系統出現效能問題後,應該用什麼樣的工具來觀測和分析。

比如,當遇到 i/o 效能問題時,可以參考最下方的 i/o 子系統,使用 iostat、iotop、blktrace 等工具分析磁碟 i/o 的瓶頸。你可以把這個圖儲存下來,在需要的時候參考查詢。

效能工具的選用☞ 乙個正確的選擇勝過千百次的努力。

千萬不要把效能工具當成學習的全部☞ 工具只是解決問題的手段,關鍵在於你的用法。只有真正理解了它們背後的原理,並且結合具體場景,融會貫通系統的不同元件,你才能真正掌握它們。

效能的思維導圖,裡面涵蓋了大部分效能分析和優化都會包含的知識。

先學會系統工作原理,但不要去深究 linux 核心是如何做到的,而是要把你的重點放到如何觀察和運用這些原理上,比如:

想真正學懂一門知識,最好的方法就是問問題。當你能提出好的問題時,就說明你已經深入了解了它。

使用一到兩台 ubuntu 18.04 虛擬機器,作為案例執行和分析的環境。只有通過在機器上練習,把學習的知識和案例自己過一遍,這些東西才能轉化成自己的。

Linux 效能優化 01 開山初始篇

效能問題的複雜性增加了我們大家的學習難度,但這並不能成為我們高階路上的 攔路虎 在我看來,大多數人對效能問題 投降 原因可能只有兩個。1 乙個是你沒找到有效的方法學原理,一聽到 系統 底層 這些詞就發怵,覺得東西太難,自己一定學不會,自然也就無法深入學下去,從而不能建立起效能的全域性觀。2 再乙個就...

MySQL效能優化 01 效能標準

什麼是效能?效能即響應時間。即我們解決問題的速度。那麼我們要優化效能,則是要減少這個時間,即先找到時間都花在了什麼地方。誤區 認為優化是降低伺服器cpu或記憶體。資源是拿來利用的,如果資源能夠換來更快地查詢,那麼也是我們優化的一部分。效能的倒數是吞吐量。當我們的效能上去了,自然每秒處理的數量就上去了...

LInux效能優化學習(二)

先用vmstat檢視系統上下文切換次數和中斷次數 然後通過pidstatguancha程序的自願上下文切換和非自願上下文切換情況 最後通過pidstat觀察執行緒的上下文切換情況,找出上下文切換次數增多的根源。使用的工具sysbench。先用top檢視系統和程序的cpu使用情況,發現cpu使用率公升...