1. 程式人生 > >Linux工具效能調優系列一:效能調優泛談

Linux工具效能調優系列一:效能調優泛談

一,為什麼需要效能調優

我們平時中,總會遇到各種各種的效能問題,有應用層面的,網路層面的,作業系統層面的等等。在我看來,我們需要效能調優的原因有以下幾個: (1) 這些問題如果不解決,會直接影響到我們的系統性能,甚至造成我們服務的不可用 (2) 加大我們的伺服器成本 (3) 迅速定位問題原因,迅速解決,降低故障影響 (4) 對自己和他人負責

二,我們要優化的是什麼效能

(1) 如果我們站在應用層來看,我們更加關注工作負載,工作負載中我們通常會關注:延時和吞吐量。

(2) 如果我們站在系統層面來看,需要關注的問題就很多,CPU,IO,記憶體,網路,磁碟等。這個時候,我們通常會關注:吞吐量,使用率,飽和度,延遲等

由於應用層面的程式碼導致的原因不夠通用化,但是應用層面導致的問題,最終還是會體現到系統層面上,我們可以利用系統層面的問題反推回去,所以我們會聚焦在系統層面來看問題。

三,怎麼優化效能

其實這裡有個很難定義的點,就是怎麼樣效能算是好,怎麼樣算是不好,幾乎每個指標都會遇到這樣的問題。在這裡,我想說,這是個主觀的點,我們通常都是自己去定義這個所謂的閾值。

3.1 分析問題的思路

遇到一個性能問題,我們需要一些排查的方法論,在這裡不會提出很多方法論,用的是自己經常用的的方法,每個步驟都有相應的工具來解決。

(1) 出現了什麼效能問題 (2) 誰導致了這個問題 (3) 問題是否存在規律性 (4) 為什麼會導致這個問題(這裡可能需要不斷地假設和論證)

3.2 哪些效能需要優化

通常我們優先優化最有價值的效能,但是不同指標之間不是簡單的單一關係,很多是錯綜複雜聯絡在一起的,我們在優化前後需要都去評價各個方面的指標。

四,知識儲備

後續會介紹的每個工具,背後都是相關的各種基礎知識。不希望大家只是停留在會用的階段,需要的是深入理解背後的基礎知識,這樣才能更好的利用這些兵器。

(1) 最重要的是,作業系統底層知識。例如:CPU,磁碟,網路,IO等知識 (2) Linux常用的操作命令

五,目的

能熟練使用下圖的工具,解決相應的問題