此命令需要下载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 : 后面会有说明,从线程中定位到具体哪行代码