top命令:
输入top命令,如下图:
top命令显示内容后按1,则会显示每颗CPU的使用情况,如下图
输出项说明:
%Cpu(s)表示统计信息为所有 CPU 的平均值。
%user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。
用户空间和内核空间的CPU使用百分比一般是70%和30%,这是一个比较合理的值。如果内核空间占用CPU太多,则会影响进程(用户空间)提供的服务。
vmstat命令:
执行vmstat 1 10,意思是每秒输出1次,总共输出10次,结果如下图:
上图红色框部分表示的是CPU的使用情况,和top下的意思一样
sar命令(System Activity Reporter系统活动情况报告):
执行sar -q命令,结果如下:
输出项说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
w命令:
主要关注Load average,其3个值从左至右分别代表最近1分钟、最近5分钟、最近15分钟系统的负载。如果这3个值除以CPU核数>1,则表示服务器有较大压力,可以使用vmstat进一步查看CPU运行队列。
uptime命令:
和w命令一样,关注Load average
mpstat命令:
各列的值解释同top命令。一般来说idle的值长期小于10,则表示CPU繁忙。
如果要看某颗CPU的使用情况,则使用命令:mpstat -P 0 1,其中0代表的是第0颗CPU,1表示每隔1秒统计一次,效果如下图:
还可以使用sar -P 0 1命令,输出结果和mpstat一样
iostat命令:
iostat -c 1,1表示每秒输出一次,iostat -c 1 5中,1表示每秒输出一次,总共输出5次
dstat命令:
执行dstat --top-cpu 可以实时查看CPU当前在运行的进程名称,如下图