查看进程状态
ps -aux

Linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
对应:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (“zombie”) process
平均负载(load average)
查看linux平均负载命令:uptime

含义:单位时间内出入可运行状态(R)和不可中断状态(D)的平均进程数。
比如:加入系统平均负载为2,那么:
在CPU核心为2核的机器意味着CPU刚好全部被占用;在核心为4的机器上意味这有一半的CPU出于空闲。
linux cpu核心数参看
- top 按1

- cat /proc/cpuinfo | grep “model name” | wc -l

其中model name指的是cpu的型号:如下

CPU使用率 vs CPU平均负载
CPU使用率是CPU繁忙情况的统计,或者处于工作状态的时间片与总的时间片的比值。
CPU平均负载中除了出于“可运行状态”进程还包括“出于不可中断状态”进程,其中不可中断进程就包括处理IO读写状态的,而处于IO状态的进程,等待的是IO资源,是不耗费CPU的。
stress 命令
系统压力测试工具
安装: yum install stress
mpstat 命令
多核cpu性能分析功能,查看每个CPU的性能指标和所有CPU的平均指标。
- 安装:yum install sysstat

pidstat 命令
进程性能分析工具,用来实时查看进程的CPU、内存、IO以及上下文切换等指标
pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,
- 安装:yum install sysstat
- 查看所有进程的 CPU 使用情况( -u -p ALL):
命令:pidstat 或pidstat -u -p ALL

PID:进程ID
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令
- cpu使用情况统计(-u)
pidstat -u 与pidstat 一样
- 内存使用情况统计(-r)
pidstat -r

PID:进程标识符
Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
VSZ:虚拟地址大小,虚拟内存的使用KB
RSS:常驻集合大小,非交换区五里内存使用KB
Command:task命令名
- 显示各个进程的IO使用情况(-d)
pidstat -d

PID:进程id
kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB
kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
COMMAND:task的命令名
- 显示每个进程的上下文切换情况(-w)
pidstat -w -p 2831

PID:进程id
Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量
Command:命令名
- 显示选择任务进程的线程的统计信息外的额外信息 (-t)

TGID:主线程的表示
TID:线程id
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令