load简介

应用容器的linux监控面板load是经常关注的性能参数,或者在机器上执行uptime也能直观的看到平均负载情况:
右边三个参数从左→右依次是1min、5min、15min的平均负载,所谓平均负载是指单位时间内的平均活跃进程数,和cpu使用率不是同一个概念,平均活跃进程数包括两个状态的进程数:可运行状态、不可中断状态。其中可运行状态的进程指的是正在使用cpu的进程或者等待cpu的进程,对应ps命令中的R(running+runnable)状态;不可中断状态的进程指的是处于内核关键流程且不可被中断的进程,对应ps命令中的D(disk sleep)状态,比如常见的IO响应。

一般理想化的负载最优值是平均每个cpu 70%,线上应用如果长期超过70%,还是建议扩容或者优化。执行grep 'model name' /proc/cpuinfo|wc -l可看机器有多少个逻辑cpu。
下面来使用stress-ng分别模拟高cpu、高iowait下的load上涨场景,需要安装两个包:sysstat、stress-ng。
ps:不建议安装stress,stress -i是使用sync()系统调用,刷新缓冲区内存到系统磁盘中来模拟io压力,对于刚装的虚拟机、固态磁盘等缓冲区比较小的情况不适用,无法产生明显io压力,stress-ng兼容stress,对于固态,可用stress-ng -d来模拟io压力。
stress-ng源码下载地址
sysstat源码下载地址
好了,下面开始动手吧:笔者使用的是centos7.9,root用户,4c1g

情景1:cpu使用率高

打开3个窗口,1个窗口生成2个worker循环调用sqrt()运行600s:

[root@localhost ~]# stress-ng -c 2 --timeout 600

第2个窗口观察load上涨情况

[root@localhost ~]# watch -d uptime

第3个窗口观察cpu负载情况

[root@localhost ~]# mpstat -P ALL 5


如上图,过个1分钟左右,就可以看到一分钟内的load average有明显上升,有2个用户cpu使用率100%,而iowait仍是0。此时退出窗口3的进程,执行pidstat -u 5 1可以看到下图中的情况:有两个stress-ng的command使用了99.8%的cpu。

情景2:iowait高

执行stress-ng之前,先等load恢复原样:

使用stress-ng生成2个worker 进行hdd写测试,非hdd的也可以使用-i 调用sync()来产生io压力。原来的watch -d uptime窗口可不关

[root@localhost ~]# stress-ng -d 2 --timeout 600

1分钟后,执行mpstat -P ALL 5可查看到iowait使用率有明显上涨,idle下降,用户cpu、系统cpu有些许上涨,说明load的上涨主要是因为iowait上涨了。

再执行pidstat -d 5 1查看io使用情况,如下图,可以看到stress-ng命令占用io明显。

情景3:大量进程

当运行进程数远大于cpu核数时,cpu就会超载,出现进程等待cpu的情况,笔者是4c的机器,这里使用20个cpu,模拟严重过载。
等待load恢复:

[root@localhost ~]# stress-ng -c 16 --timeout 600

1~2分钟后,查看load是这样的:

使用pidstat -u 5 1,发现16个进程在争抢cpu,且每个进程的%wait列很高,即进程等待cpu的时间高达74%,这严重超出了cpu的计算能力,最终导致cpu过载。

利用stress-ng压测来理解linux平均负载相关推荐

  1. linux平均负载什么意思_在Linux中什么是平均负载?

    linux平均负载什么意思 Load Average in Linux is a metric that is used by Linux users to keep track of system ...

  2. php 系统平均负载,深入理解liunx平均负载

    查找系统平均负载,可以通过top或者uptime命令查看 $ uptime 14:12:35 up 289 days, 18:50, 2 users, load average: 0.12, 0.09 ...

  3. linux tcp压测工具,02.监控和压测工具 - 2.4.压测工具 - 《Linux性能调优指南》 - 书栈网 · BookStack...

    压测工具其它有用工具 在这里,我们会讨论主要的压力测试工具,选择合适的压测工具,才能准确衡量系统性能.好的压测工具有很多,可能的功能如下: 发起压力 监控性能 监控系统使用率 生成报告 基准测试无非就 ...

  4. 利用wrk工具压测腾讯CLB

    可以做压测的工具有好多,ab.jmeter,此处选用wrk进行压测 环境 一台CLB实例(在腾讯云平台上创建) 四台RS服务器(后端提供web服务的机器,在腾讯云上创建CVM云主机) 两台压测客户端( ...

  5. linux php cpu,理解Linux CPU负载和 CPU使用率

    CPU负载和 CPU使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入w ...

  6. 理解Linux CPU负载和 CPU使用率

    CPU负载和 CPU使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入w ...

  7. linux load average,Linux 平均负载 Load Average 详解

    一.什么是Load Average? 系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度). 平均负载(Load Average)是一段时 ...

  8. 不看我真的会很伤心【压测工具:提升系统性能的利器】,查看TPS,计算TPS,计算压测指标、压测名词解释、教大家如何压测

    目录 前言 一.压测是什么? 二.为什么要压测? 三. 压测名词解释 1.压测类型解释 2.压测名词解释 3.机器性能指标解释 4.访问指标解释 四.如何计算压测指标 五.常见的压测工具 1.JMet ...

  9. Jmeter对服务器的压测

    1.对本地数据库进行压测 1.添加一个线程组和驱动 2.添加一个JDBC Connection Configuration,连接池配置文件.右键线程组[添加]–[配置元件]–[JDBC Connect ...

最新文章

  1. 2022-2028年中国PET薄膜行业市场深度分析及未来趋势预测报告
  2. 难点电路详解之负反馈放大器电路(1)
  3. 使用Windows8开发Metro风格应用三
  4. C语言中extern关键字的使用
  5. 【工具】更新云文档办公利器汇总,腾讯文档测试文件上传,云文档对比测试报告...
  6. java中byte, iso-8859-1, UTF-8,乱码的根源
  7. PyCharm简单使用介绍及注意事项
  8. java中==和equals引发的思考
  9. 脚本进阶,函数调用实例练习
  10. 用python绘制好看的图形_怎么用Python画出好看的词云图?
  11. sql把字符数组转换成表
  12. linux中screen命令的用法
  13. javascript中的this指向问题
  14. OpenGL学习(八)phong光照模型
  15. 13岁残疾、35岁离异……43岁这年她将和全球最美王妃同台……
  16. 京东自营售前客服考试
  17. 乐助手电脑版 v3.0.4.33284 官方版
  18. Linux云计算架构-使用LAMP搭建ecshop电商平台,并测试网站所能承受并发数
  19. 重装 Windows 系统后键乱码解决方案
  20. DCT变换及matlab实现

热门文章

  1. 智能时代,电话销售如何打造高效的智能化解决方案?
  2. 项目——排队叫号系统设计
  3. java工作描述_java工程师工作描述状况是干什么的?需要身怀哪些技能呢?
  4. 点击li标签增加样式,并删除其它li标签样式
  5. java ssm oa_基于SSM的OA系统
  6. 根据卡号前6位判断开户银行
  7. “东数西算”带来的数据安全挑战有哪些?
  8. nginx修改上传文件大小限制
  9. 【私有云架构】Openstack VS CloudStack:比较异同
  10. latex设置页边距和行距