什么是平均负载?
概念
平均负载指的是单位时间内(1,5,15分钟)系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数
可运行状态: 正在使用CPU或者等待CPU的进程,也就是通过ps aux看到的状态为R的进程
不可中断状态: 正处于内核关键流程中的进程,并且这些流程是不可被打断的,比如IO响应。也就是通过ps aux看到的状态为D的进程。
不可中断状态实际上是系统对进程和硬件设备的一种保护机制
既然平均的是活跃进程数,那么最理想的就是每个CPU上正好运行着一个进程,每个进程CPU都得到了充分的利用。
平均负载多少为合理
首先要知道你的系统是多少核的CPU
[root@www ~]# grep 'model name' /proc/cpuinfo | wc -l 4
其次根据平均负载(每个核心为1作为最高标准去判断)的三个趋势时间去判断变化率,从而总结出对应的负载情况:一般超过70%的话就算是比较高了
平均负载和CPU使用率
CPU使用率:单位时间内CPU繁忙成都的统计,跟平均负载不是一一对应的
CPU密集型进程,使用大量的CPU会导致平均负载和CPU使用率
IO密集型进程,等待IO也会导致平均负载升高,但是CPU使用率不一定很高
大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高
平均负载案例分析
准备环境
OS:linux 软件需求:stress sysstat 测试命令:stress 压力测试 mpstat cpu性能分析工具 pidstat 进程性能分析工具
需要打开三个终端:作为压测命令端,负载观察端,进程观察端
场景一:CPU密集型进程
终端一:查看当前平均负载&执行压测命令
[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 #十分钟测试
终端二:观察平均负载变化情况
[root@www ~]# watch -d uptime
终端三:mpstat查看CPU使用率变化情况和占用cpu的进程
[root@www ~]# mpstat -P ALL 5 #抓取CPU的变化率 (5秒输出一组数据) [root@www ~]# pidstat -u 5 1 #抓取占用CPU的进程(5秒输出一组数据)
场景二:IO密集型进程
终端一:查看当前平均负载&执行压测命令
[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 #十分钟测试
终端二:观察平均负载变化情况
[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秒输出一组数据)
小结归纳
平均负载是一个快速查看系统整体性能的手段,反映了整体的负载情况。但只看平均负载本身我们并不能直接发现到底是哪里出了瓶颈,在理解平均负载的时候我们也要注意:
平均负载高可能是CPU密集型进程导致的
平均负载高不一定代表CPU使用率高,还有可能是IO更加繁忙了
当发现负载较高的时候可以使用mpstat、pidstat等工具来辅助分析
原文链接: https://www.yukx.com/linuxtop/article/details/2034.html 优科学习网什么是平均负载?
-
现在不管安防工程还是弱电工程,与网络的联系也越来越密切了,网络基础知识中的网络命令ping命令在项目中是使用频率最高的,一般我们用的都是它的基本功能,今天和大家来详细看下Ping命令的7个基础用法,掌握了秒变大神!1、ping命令基础2、ping-t的使用3、ping-a的使用4、ping-n的使用
-
总结下工作中遇到的GC问题。一、JVM参数设置不当机器4G,部分JVM参数设置-Xmx3296m -Xms3296m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:MaxGCPauseMillis=200 -XX:+Use
-
1. /:根目录,一般根目录下只存放目录,在终端里输入/home,其实是在告诉电脑,先从/(即根目录)开始,再进入到home目录;2. /bin,/user/bin:可执行的二进制文件的目录,如常用的命令:ls,tar,mv,cat等;3. /boot:放置Linux系统启动时用到的一些文件,
-
一、CentOS简介:Centos是社区企业操作系统,是Linux发行版之一。centos是由RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成,但它并不包含封闭源代码软件。You have specified that the package 'gcc' should be installed.
-
1、首先,打开VM虚拟,在顶部点击虚拟机的选项卡,再在往下弹出的菜单中点击安装vmwaretools。2、然后,在虚拟机系统中弹出的自动播放的窗口中点击运行setup64.exe。3、接着,在进入到的欢迎界面的窗口中点击底部的下一步按钮。4、之后,根据界面的跳转和提示,再点击底部的安装按钮。5、如图
-
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,