工具 | 描述 |
---|---|
uptime | 平均负载 |
vmstat | 包括系统范围内的平均负载 |
mpstat | 查看所有cpu核信息 |
top | 监控每个进程的cpu用量 |
sar -u | 查看cpu信息 |
pidstat | 每个进程的cpu用量分解 |
perf | cpu剖析和跟踪,性能计数分析 |
使用方式
mpstat
mpstat -P ALL 1
功能:查看所有cpu核信息,其中-P选项后表示要查看的cpu核编号,ALL表示查看所有核,1表示没搁1秒输出一次信息 输出如下:
08时35分00秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
08时35分01秒 all 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
08时35分01秒 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08时35分01秒 1 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
输出说明:
%usr
: 用户空间程序占用CPU的百分比。
%nice
: 以较高优先级运行的nice程序占用CPU的百分比。
%sys
: 内核占用CPU的百分比。
%iowait
: CPU等待I/O操作完成的时间百分比。
%irq
: CPU处理硬件中断的时间百分比。
%soft
: CPU处理软中断的时间百分比。
%steal
: CPU被虚拟机监控程序(hypervisor)偷取的时间百分比。
%guest
: CPU运行虚拟机的时间百分比。
%gnice
: 以较高优先级运行的虚拟机的nice程序占用CPU的百分比。
%idle
: CPU空闲时间的百分比。
vmstat
功能:查看cpu使用情况及平均负载 输出如下:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1958492 162308 1153876 0 0 882 176 125 236 1 1 97 0 0
0 0 0 1958532 162308 1153920 0 0 0 0 116 164 1 0 100 0 0
0 0 0 1958532 162308 1153920 0 0 0 0 118 181 0 1 99 0 0
0 0 0 1958532 162308 1153920 0 0 0 0 107 164 0 1 100 0 0
0 0 0 1958532 162308 1153920 0 0 0 0 117 177 1 0 100 0 0
0 0 0 1958532 162308 1153920 0 0 0 0 111 163 0 0 100 0 0
输出说明:
procs
r
: 等待运行的进程数。
b
: 处于不可中断睡眠状态的进程数。memory
swpd
: 虚拟内存使用量。
free
: 空闲的物理内存量。
buff
: 用作缓冲的内存量。
cache
: 用作缓存的内存量。swap
si
: 从交换空间(swap)读入内存的数据量。
so
: 写入交换空间的数据量。io
bi
: 从块设备读取的数据量。
bo
: 写入块设备的数据量。system
in
: 每秒的中断次数,包括时钟中断。
cs
: 每秒的上下文切换次数。cpu(各项表示CPU时间的百分比)
us
: 用户进程占用CPU的百分比。
sy
: 系统进程占用CPU的百分比。
id
: CPU空闲时间的百分比。
wa
: CPU等待I/O的百分比。
st
: 被偷取的时间百分比(通常在虚拟环境中)。
pidstat
pidstat -u 1 -p pid
功能:查看进程cpu的统计信息,其中-u选项表示显示用户级别的cpu使用情况,当然-s选项表示显示系统级别的cpu使用情况
输出:
08时42分02秒 UID PID %usr %system %guest %wait %CPU CPU Command
08时42分03秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
08时42分04秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
08时42分05秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
08时42分06秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
08时42分07秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
08时42分08秒 1000 2171 0.00 0.00 0.00 0.00 0.00 0 bash
输出说明
时间戳:格式为
HH:MM:SS
,表示每次采样的时间点。UID:进程所属用户的用户标识符(User ID)。
PID:进程标识符(Process ID)。
%usr:用户级别CPU使用率,表示进程在用户空间执行代码所占的CPU时间百分比。
%system:系统级别CPU使用率,表示进程在内核空间执行代码所占的CPU时间百分比。
%guest:虚拟CPU使用率,表示进程在虚拟CPU上运行的时间百分比。
%wait:等待CPU的时间百分比,表示进程等待CPU时间所占的百分比。
%CPU:总CPU使用率,表示进程在所有CPU上的总体CPU使用情况百分比。
CPU:进程所运行的CPU编号。
Command:进程的命令名称。