- load average
平均负载:单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。
- 可运行状态:正在使用cpu或等待cpu的进程,即ps命令下状态为R(Running或Runnable)的进程。
- 不可中断状态:正在处于内核关键流程中的进程,这些流程是不可打断的,如等待硬件设备的I/O响应,即ps命令下状态为D(Uninterruptible Sleep,也成为Disk Sleep)的进程。
- 当load average大于cpu的个数时,表明系统已经出现了过载。当load average高于cpu数量70%的时候,需要排查负载高的问题了,负载过高会导致进程响应变慢。
- load升高的几种情况
- cpu密集型进程,使用大量的cpu会导致load升高。
- i/o密集型进程,等待i/o会导致load升高。
- 工具
- stress:linux系统压力测试工具
- sysstat:linux性能分析工具,包含mpstat和pidstat等
- mpstat:多核cpu性能分析工具,可以实时查看每个cpu的性能指标
- pidstat:进程性能分析工具,实时查看进程的cpu、内存、i/o及上下文等性能指标
命令:
- stress --cpu 1 --timeout 600 模拟cpu使用率100%的场景(--timeout表示执行时间)
- stress -i 1 --timeout 600 模拟io 100%的场景
- stress -c 8 --timeout 600 模拟8个进程
- mpstat -P ALL 5 1 显示所有cpu的使用情况,5秒输出一组数据(-P ALL表示监视所有进程)
- pidstat -u 5 1 查看每个 进程 的使用情况,5秒输出一组数据 (-u 表示cpu利用率)