uptime
用于查找系统变慢的原因。
02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88
02:34:03 //当前时间
up 2 days, 20:14 //系统运行时间
1 user //正在登录用户数
而最后三个数字呢,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系
可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。
不可中断状态的进程则是正处于内核态关键流程中的进程,
并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。
系统CPU个数: grep 'model name' /proc/cpuinfo | wc -l
CPU密集型分析步骤:
- watch -d uptime 运行 uptime 查看平均负载的变化情况
- mpstat -P ALL 5 运行 mpstat 查看 CPU 使用率的变化情况, CPU 的使用率为 100%,但它的 iowait 只有 0
- pidstat -u 5 1 到底是哪个进程导致了 CPU 使用率为 100% 呢?你可以使用 pidstat 来查询
I/O密集型
- watch -d uptime
- mpstat -P ALL 5 1 系统 CPU 使用率升高到了 23.87,而 iowait 高达 67.53%
- pidstat -u 5 1
模拟工具 stress stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
- stress --cpu 1 --timeout 600 模拟一个 CPU 使用率 100% 的场景
- stress -i 1 --timeout 600 模拟 I/O 压力,即不停地执行 sync
- stress -c 8 --timeout 600 模拟大量进程的场景
安装方法:apt install stress
分析工具
- iostat
- mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。
- pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。
安装方法:apt install sysstat
来源:oschina
链接:https://my.oschina.net/VlanGuo/blog/4393389