linux 性能自我学习 ———— 理解平均负载 [一]
前言
linux 系统上性能调查的自我学习。
正文
什么是平均负载?
使用uptime:

可以看到后面有:
0.03, 0.06, 0.09
这个表示1分钟,5分钟,15分钟的平均负载。
平均负债是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。
所谓可运行状态的进程,是指正在使用cpu或者正在等待cpu的进程,也就是我们常用的ps命令看到的,处于r状态(running 或runnable) 的进程。
不可中断状态的进程是正处于内核态关键中的流程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的io响应,
也就是我们在ps命令中看到的d状态(uninterruptible sleep,也称disk sleep)的进程。
比如平均负载是2:
在只有两个cpu的系统上,意味着所有的cpu都刚好被完全占用。
在4个cpu的系统上,意味着cpu有50%的空闲。
在只有一个cpu的系统上,意味着有一半的进程竞争不到cpu。
什么时候平均负载合理:
查看cpu的个数:
grep 'model name' /proc/cpuinfo | wc -l
如果平均负载超过了核数,那么是过载,那么就是说有进程没有竞争到cpu。
一般情况下,当平均负载高于cpu数量70%的时候,那么就应该增加配置或者调查一下原因。
而我们也是需要看cpu负载在1分钟,5分钟和15分钟。
如果15分钟的负载很高,而1分钟的负载不高,那么就说明负载开始下来了。
反之,是最近才上去的。
平均负载和cpu使用率的区别。
平均负载包括正在使用的cpu,还有等待的cpu还有等待io的进程。
而cpu使用率就是表面意思,就是cpu的使用情况。
cpu 密集型进程,使用大量的cpu会导致平均负载升高,此时两者是一致的。
i/o 密集型,等待io也会导致平均负载升高,但是cpu使用率不一定升高。
大量等待cpu的进程调度也会导致平均负载升高,此时的cpu使用率也会比较高。
下面对这3中情况,进行案例测试:
需要安装stress,sysstat.
- 模拟cpu 密集型进程
stress --cpu 2 --timeout 600

可以看到平均负载升高了。
查看cpu 使用率:
mpstat -P ALL 5

可以看到cpu 使用率被拉满了,但是iowait很低。
那么这个时候就是cpu密集型。
那么查看是哪个导致cpu使用100%。
使用pidstat:
pidstat -u 5 1
- 模拟cpu高的场景
stress -i 1 --hdd 1 --timeout 600
使用watch -d uptime:

使用mpstat 查看 mpstat -P -ALL 5 1:

然后使用pidstat -d 5 1:

可以看到是因为io的原因。
场景3,大量进程的场景:
模拟16个活跃进程的场景:
stress -c 16 --hdd 1 --timeout 600
负载情况:

可以看到io和cpu都不高:


因为进程太多。
结
下一节cpu 上下文切换。
linux 性能自我学习 ———— 理解平均负载 [一]的更多相关文章
- Linux性能调优 | 01 平均负载的理解和分析
01 uptime命令 通常我们发现系统变慢时,我们都会执行top或者uptime命令,来查看当前系统的负载情况,比如像下面,我执行了uptime,系统返回的了结果. [root@lincoding ...
- Linux性能优化-理解平均负载
1 平均负载含义 当系统变慢的时候,我们一般使用 top 或 uptime 命令来查看系统平均负载情况. 正确定义:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数.错误定义:单位时间内的c ...
- Linux性能优化实战:到底应该怎样理解平均负载(02)
一.平均负载与CPU使用率并没有直接关系 1.平均负载 单位时间内,系统处于可运行状态和不可终端状态的平均进程数也就是平均活跃进程数,它和cpu使用率并没有直接关系, 可运行状态: 正在使用的cpu或 ...
- Linux性能优化从入门到实战:01 Linux性能优化学习路线
我通过阅读各种相关书籍,从操作系统原理.到 Linux内核,再到硬件驱动程序等等. 把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯 ...
- [linux] uptime 命令中关于平均负载的解释
1.当前时间 00:13:25 2.系统已运行的时间 9小时19分 3.当前在线用户 2 user 4.平均负载:0.17, 0.12, 0.07 最近1分钟.5分钟.15分钟系统的负载 为了更好地理 ...
- 深挖计算机基础:Linux性能优化学习笔记
参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...
- Linux系统自我学习的一些笔记1
远程连接: 1.查看IP地址 ip addr 2.远程登陆linux系统 ssh 主机名@IP地址 文件操作: 新建文件touch 例如:touch test.txt (创建单个文件) 例如:to ...
- Linux系统中到底应该怎么理解系统的平均负载
02 | 基础篇:到底应该怎么理解“平均负载”? 每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况.比如像下面这样,我在命令行里输入了 upt ...
- linux之平均负载(学习笔记非原创)
什么是平均负载 [root@111 ~]# uptime 11:03:33 up 149 days, 17:34, 1 user, load average: 0.08, 0.05, 0.01 最后三 ...
- 1 理解Linux系统的“平均负载”
什么是平均负载 我们知道使用top或uptime可以用来了解系统的负载情况. uptime 2 02:34:03 up 2 days, 20:14, 1 user, load average: 0.6 ...
随机推荐
- cpu过高什么原因?怎么排查?
运行大型程序或应用程序:当计算机运行大型程序或应用程序时,CPU需要处理更多的数据和指令,因此CPU占用率会相应地增加. 病毒或恶意软件:某些病毒或恶意软件会占用计算机的CPU资源来执行恶意任务,例如 ...
- 牛客“迎新春,过大年”多校程序设计竞赛A题
题目描述: 这里有个小trick 当时也看到数据范围的问题了 \(n是1e6 \quad \sum_{i=1}^na[i]<=5e7\) 我们考虑不同的数\(1 \quad 2 \quad .. ...
- PhpStorm设置FTP功能
1.版本介绍 本文操作针对PhpStorm 2020.1版本 2.[ctrl + alt + s]打开设置,选择"Build,Execution,Deployment" 3.选择& ...
- Failed to collect dependencies at com.oneconnect......-Intellij-IDEA-使用maven打包采坑记录
一.问题由来 由于刚开始使用Intellij-IDEA,使用不是很熟练,因此使用过程中出现各种各样的问题.最近开发过程中,准备使用IDEA打包项目发布到测试服务器,报错信息如下: Failed to ...
- [SCOI 2009] 迷路 (矩阵快速幂)
[SCOI 2009]迷路 传送门 问题描述 Windy 在有向图中迷路了. 该有向图有 \({N}\) 个节点,Windy 从节点 \({1}\) 出发,他必须恰好在 \({T}\) 时刻到达节点 ...
- 泰凌微TLSR8258芯片解决方案开发之串口打印级别设置
一 TRSR8258简介 该芯片是泰凌微推出来的一款纯ble的芯片,接口丰富,功耗低,资源丰富,非常适合做可穿戴物联网设备,笔者拿这颗芯片做了不少方案,感觉非常好用,所以这里写一下使用心得. 二 串 ...
- SQL注入详细讲解概括—盲注
SQL注入详细讲解概括-盲注 1.盲注简单理解 2.盲注必学函数 3.布尔盲注 4.时间盲注 一.盲注简单理解 What is 盲注? It is 在服务器没有错误回显的时候完成的注入攻击 数据库把报 ...
- UE干货| UE虚幻引擎调试神器—控件反射器
一.打开控件反射器 可以通过窗口→开发者工具→控件反射器 打开: 也可以在umg编辑器上方控件反射器打开. 二.UE控件反射器使用方法 运行项目后,点击控件反射器的"选择可测试命中控件&qu ...
- 宁波市ctf线下赛awd总结
这是第四届宁波市ctf比赛的线下awd经验总结. 由于主办方的服务器出错,原定于14:00开始的比赛,最后17:30才开始,一直打到20:30. 并且突然改了一部分比赛方式,取消了前30分钟的加固时间 ...
- 07.Android之多媒体问题
目录介绍 7.0.0.1 加载bitmap图片的时候需要注意什么?为何bitmap容易造成OOM?如何计算Bitmap占用内存? 7.0.0.2 如何理解recycle释放内存问题?图片加载到内存其实 ...