Linux 理解平均负载

平均负载

uptime输出的平均负载,又叫平均进程数,包括正在使用CPU、等待CPU、等待IO的进程。和CPU使用率没有直接关系。假设系统只有一个CPU,当平均负载为1,即每个CPU刚好运行一个任务

不可中断状态:ps为D状态的
可运行状态:ps为R状态

CPU使用率

CPU使用率含义:单位时间内CPU繁忙情况的统计,和平均负载不是一一对应的关系
1、CPU密集型:大量的CPU会导致平均负载升高,两者一一对应
2、I/O密集型:等待I/O也会导致平均负载升高,但CPU使用率不一定很高
3、大量CPU调度型:导致平均负载升高,CPU使用率也升高

场景测试

apt-get install stress sysstat -y

CPU密集型

测试命令:stress --cpu 1 --timeout 600



测试结果分析:有一个CPU的使用率达到100%,平均负载为0.59。但是%USER字段100,%SYS为0,这里是由于用户进程数太多导致。说明CPU使用率的升高是由于CPU使用率100%

IO密集型

测试命令:stress -i 1 --timeout 600


测试结果分析:有一个CPU的使用率达到100%,平均负载为0.42。但是%USER字段5,%SYS为100,这里由于IO进程是属于sys态的进程,说明CPU使用率的升高是由于IOWAIT较高导致,用户此时的进程数并不多

大量进程

测试命令:stress -c 8 --timeout 600



测试结果分析:8个进程正在抢夺2个CPU的资源,图中的 %wait 为每个进程等待CPU的时间

posted @ 2019-07-07 13:03  reaperhero  阅读(131)  评论(0编辑  收藏  举报