理解系统平均负载

什么是系统平均负载

平均负载是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和cpu使用率没有直接关系。
所谓可运行状态的进程,是指正在使用cpu或者正在等待cpu的进程,也就是我们常用ps命令看到的,处于R状态(running或者runnable)的进程。
不可中断状态的进程是正处于内核态关键流程中的进程,这些进程是不可打断的,比如最常见的是等待硬件设备的IO响应,也就是我们在ps命令中看到的D状态(Uninterruptible Sleep,也称为Disk Sleep)的进程

平均负载多少时间合理

系统有几个cpu

zhk@ubuntu:~$ grep 'model name' /proc/cpuinfo | wc -l
2

使用uptime

zhk@ubuntu:~$ uptime
 15:38:25 up 3 days, 18 min,  1 user,  load average: 0.07, 0.02, 0.00

系统工具

stress 系统压力测试工具
sysstat 常用linux系统压力工具,提供mpstat和pidstat

  • 模拟cpu
stress --cpu 1 --timeout 600
  • IO 密集
stress -i 1 --timeeout 600
  • 多进程争夺cup
stress -c 8 --timeout 600

查看负载

watch -d uptime
mpstat -P ALL 5