Linux性能優化實戰學習筆記:第三十講

1、性能指標

2、文件系統I/O性能指標

一、存儲空間的使用狀況

文件系統向外展現的空間使用,而非磁盤空間的真是用量,由於文件系統的元數據也會佔用磁盤空間ios

二、索引節點的使用狀況

若是存儲過多的小文件、就可能碰到索引節點容量已滿的問題redis

三、緩存使用狀況

若是存儲過多的小文件、就可能碰到索引節點容量已滿的問題,從而能夠減小訪問慢速磁盤的次數緩存

四、文件IO

 

 3、磁盤I/O性能指標

4、性能工具

一、文件系統原理

二、磁盤I/O原理

三、狂打日誌案例

四、磁盤I/O延遲的單詞熱度案例

五、MYSQL的案例

六、redis的案例

5、性能指標和工具的聯繫

第一個維度、從文件系統和磁盤 I/O 的性能指標出發。換句話說,當你想查看某個性能指標時,要清楚知道,哪些工具能夠作到工具

根據指標找工具

第二個維度,從工具出發。也就是當你已經安裝了某個工具後,要知道這個工具能提供哪些指標性能

根據指標找工具

 

 

根據指標招工學習

6、如何迅速分析 I/O 的性能瓶頸

那有沒有什麼方法,能夠又快又準地找出系統的 I/O 瓶頸呢?

仍是那句話,找關聯。多種性能指標間都有必定的關聯性,不要徹底孤立的看待他們。想弄清楚性能指標的關聯性,
就要通曉每種性能指標的工做原理。這也是爲何我在介紹每一個性能指標時,都要穿插講解相關的系統原理,再次但願你能記住這一點。spa

一、先用 iostat 發現磁盤 I/O 性能瓶頸;
二、再借助 pidstat ,定位出致使瓶頸的進程;
三、隨後分析進程的 I/O 行爲;
四、最後,結合應用程序的原理,分析這些 I/O 的來源。線程

因此,爲了縮小排查範圍,我一般會先運行那幾個支持指標較多的工具,如 iostat、vmstat、pidstat 等。而後再根據觀察到的現象,結合系統和應用程序的原理,尋找下一
步的分析方向。我把這個過程畫成了一張圖,你能夠保存下來參考使用。3d

圖中列出了最經常使用的幾個文件系統和磁盤 I/O 性能分析工具,以及相應的分析流程,箭頭則表示分析方向。這其中,iostat、vmstat、pidstat 是最核心的幾個性能工具,它們也提
供了最重要的 I/O 性能指標。舉幾個例子你可能更容易理解。日誌

例如,在前面講過的 MySQL 和 Redis 案例中,咱們就是經過 iostat 確認磁盤出現 I/O性能瓶頸,而後用 pidstat 找出 I/O 最大的進程,接着藉助 strace 找出該進程正在讀寫的
文件,最後結合應用程序的原理,找出大量 I/O 的緣由。

再如,當你用 iostat 發現磁盤有 I/O 性能瓶頸後,再用 pidstat 和 vmstat 檢查,可能會發現 I/O 來自內核線程,如 Swap 使用大量升高。這種狀況下,你就得進行內存分析了,
先找出佔用大量內存的進程,再設法減小內存的使用。

另外注意,我在這個圖中只列出了最核心的幾個性能工具,並無列出前面表格中的全部工具。這麼作,一方面是不想用大量的工具列表嚇到你。在學習之初就接觸全部核心或小
衆的工具,不見得是好事。另外一方面,也是但願你能先把重心放在覈心工具上,畢竟熟練掌握它們,就能夠解決大多數問題。

因此,你能夠保存下這張圖,做爲文件系統和磁盤 I/O 性能分析的思路圖譜。從最核心的這幾個工具開始,經過我提供的那些案例,本身在真實環境裏實踐,拿下它們。

7、小結

今天,咱們一塊兒複習了常見的文件系統和磁盤 I/O 性能指標,梳理了常見的 I/O 性能觀測工具,並創建了性能指標和工具的關聯。最後,咱們還總結了快速分析 I/O 性能問題的思路。

仍是那句話,雖然 I/O 的性能指標不少,相應的性能分析工具也有很多,但熟悉了各指標含義後,你就會天然找到它們的關聯。順着這個思路往下走,掌握經常使用的分析套路也並不難。

相關文章
相關標籤/搜索