平均负载指的是单位时间内(1,5,15分钟)系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数linux
ps aux
看到的状态为R的进程ps aux
看到的状态为D的进程。不可中断状态其实是系统对进程和硬件设备的一种保护机制
既然平均的是活跃进程数,那么最理想的就是每一个CPU上正好运行着一个进程,每一个进程CPU都获得了充分的利用。工具
[root@www ~]# grep 'model name' /proc/cpuinfo | wc -l 4
CPU密集型进程,使用大量的CPU会致使平均负载和CPU使用率
IO密集型进程,等待IO也会致使平均负载升高,可是CPU使用率不必定很高
大量等待CPU的进程调度也会致使平均负载升高,此时的CPU使用率也会比较高
OS:linux
软件需求:stress sysstat
测试命令:stress 压力测试
mpstat cpu性能分析工具 pidstat 进程性能分析工具
须要打开三个终端:做为压测命令端,负载观察端,进程观察端性能
终端一:查看当前平均负载&执行压测命令测试
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress --cpu 1 --timeout 600 #十分钟测试
终端二:观察平均负载变化状况ui
[root@www ~]# watch -d uptime
终端三:mpstat查看CPU使用率变化状况和占用cpu的进程code
[root@www ~]# mpstat -P ALL 5 #抓取CPU的变化率 (5秒输出一组数据) [root@www ~]# pidstat -u 5 1 #抓取占用CPU的进程(5秒输出一组数据)
终端一:查看当前平均负载&执行压测命令进程
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress --cpu 1 --timeout 600 #十分钟测试
终端二:观察平均负载变化状况get
[root@www ~]# watch -d uptime
终端三:mpstat查看CPU使用率变化状况和占用cpu的进程性能分析
[root@www ~]# mpstat -P ALL 5 #抓取CPU的变化率 (5秒输出一组数据) [root@www ~]# pidstat -u 5 1 #抓取占用CPU的进程(5秒输出一组数据)
终端一:查看当前平均负载&执行压测命令软件
[root@www ~]# uptime 15:08:02 up 84 days, 23:20, 1 user, load average: 0.00, 0.01, 0.05 [root@www ~]# stress -c 8 --timeout 600 #八个进程模拟,十分钟测试
终端二:观察平均负载变化状况
[root@www ~]# watch -d uptime
终端三:mpstat查看CPU使用率变化状况和占用cpu的进程
[root@www ~]# mpstat -P ALL 5 #抓取CPU的变化率 (5秒输出一组数据) [root@www ~]# pidstat -u 5 1 #抓取占用CPU的进程(5秒输出一组数据)
平均负载是一个快速查看系统总体性能的手段,反映了总体的负载状况。但只看平均负载自己咱们并不能直接发现究竟是哪里出了瓶颈,在理解平均负载的时候咱们也要注意:
mpstat
、pidstat
等工具来辅助分析