概述
使用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