此命令需要下載sysstat工具
1、安裝sysstat
yum install sysstat
2、查看平均負載
uptime
- 當前時間14:18:05
- 系統已運行的時間 242 days, 18:50
- 當前在線用戶 3 user
- 平均負載:4.70, 9.92, 6.92,最近1分鍾、5分鍾、15分鍾系統的負載
重點關注:平均負載
比如我這里邏輯CPU為4,可以看到1分,5分鍾,15分鍾都超過了4,說明我系統長時間處於超負載狀態下
理想狀態下的值為:邏輯CPU核數 * 0.7
3、查看CPU資源使用情況
mpstat -P ALL 10
說明:
10 = 10秒刷新一次
變量說明:
%usr:用戶態的CPU使用情況,一般是由於程序的進程導致的CPU占用
%ysy:系統態的CPU使用情況,比如磁盤I/O導致的
%iowait:I/O等待
%idle:空閑
其他的不需要怎么關注
4、查看進程使用情況
pidstat -u 5 2
說明:
5 2 = 5秒刷新一次,共刷新2次
5、查看線程情況
ps -mp 進程id -o THREAD,tid,time | sort -rn
可以看出,在3373進程中,個別線程CPU使用率高,這就需要我們着手考慮是否可以優化了
思路整理:
查看CPU平均負載--->查看CPU資源使用情況--->查看進程使用情況--->查看線程使用情況--->定位到代碼函數(后續說明)
ps : 后面會有說明,從線程中定位到具體哪些代碼