Linux性能瓶頸排查,查看系統平均負載情況(工具說明篇)

概述


使用top、htop命令查看,平均負載體現系統整體情況,屬於CPU、內存、磁盤性能的綜合情況,通過分析,一般會發現平均負載值大於CPU核數,依此說明機器資源緊張。
查看是什麼資源導致平均負載高
使用top命令查看cpu每個核使用情況,如果佔比很高,那瓶頸很可能是CPU。然後查看是什麼進程導致的。
查看內存情況(CPU無問題,然後看內存是否有問題)
使用free查看內存使用情況,但不直接看剩餘多少,還要看看cache、buffer的情況,然後查看是什麼進程佔用了過高的內存,可以使用top排序。
查看磁盤情況(內存無問題,然後看磁盤)
使用iostat查看,磁盤會出現啥問題我也不知道啊,我是扒的,對方也沒寫,以後補充會有什麼問題。
查看寬帶情況(磁盤無問題,看看寬帶)
使用iftop查看流量情況,看看流量是否超過機器給定的帶寬,網卡上線。
查看應用程序系統配置
查看Java虛擬機內存大小、應用服務器連接池配置、數據庫連接池配置、超時配置等會影響到應用性能的配置。
以上如果都沒有問題
就要考慮是不是外部程序影響了,例如網關配置、緩存服務器配置、數據庫主動請求等。

 

工具類詳解

1、CPU性能評估工具
1)vmstat(系統默認自帶,Virtual Memory Statistics 虛擬內存統計)

       利用vmstat命令可以對操作系統的內存信息、進程狀態、CPU活動等進行監視。

       常用方式:vmstat 3 5

       表示每3秒更新一次輸出信息,統計5次停止輸出

r:表示運行和等待CPU時間片的進程數, r <= CPU總核數,如果大於CPU總核數,則表示CPU資源不足.

b:表示正在等待資源的數目(b不等大於CPU的總核數)

So、si:如果經常爲0,則表示系統資源是非常充足的。如果不爲0,表示swap會經常被使用到,進一步表面系統資源是不夠的。

wa:根據線上優化的經驗,一般將此值設爲20%,如果該值超過20%,則表示io存在比較嚴重的等待,查看是否有大量的磁盤io讀寫導致。

 

2)iostat(需要安裝sysstat工具包)

       iostat是I/O statistics(輸入、輸出統計)的縮寫,主要的功能是對系統的磁盤I/O操作進行監視。

       常用方式:iostat –c 3 5

       其中,-c表示顯示CPU的使用情況,-d:顯示磁盤的使用情況

 

3)uptime命令

       Uptime是監控系統性能最常用的一個命令,主要用來統計系統當前的運行情況,輸出的信息依次爲:系統現在的時間、系統從上次開機到現在運行了多長時間、系統目前有多少登陸用戶、系統在一分鐘內、五分鐘內、十五分鐘內的平均負載。

 

2、內存性能評估
1)free命令

       free命令是監控linux內存使用狀況最常用的指令。

       常見用法:free –m

 

2)sar/pidstat

       此兩個命令主要用來監控全部或指定進程佔用系統資源的情況,如CPU、內存、設備IO。

       三個公用參數:-u(獲取CPU狀態)、-r(獲取內存狀態)、-d(獲取磁盤)

       常用組合:

       sar –u 3  獲取CPU 3秒內的狀態

       pidstat –r –p 1 3    獲取內存3 秒內的狀態

       看看以上兩個命令的差別?

 

3、磁盤性能評估
1)iostat –d組合

       iostat –d 2 3

2)pidstat –d –p 32434 3

3)sar –d 2 3

4、網絡性能評估
1)ping命令

2)netstat命令

       netstat –i(查看路由情況)

       netstat –r(查看網絡接口狀態)

3)mtr/traceroute命令

       跟蹤網絡路由狀態,推薦使用mtr,動態跟蹤網絡路由狀態,用於排查網絡問題非常方便。

 

系統性能分析標準


其中:

       %user:表示CPU處在用戶模式下的時間百分比

       %sys:表示CPU處在系統模式下的時間百分比

       %iowait:表示CPU等待輸入輸出完成時間的百分比

       swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAM

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章