当前位置: 首页 > news >正文

linux性能分析(七)CPU性能篇(二)怎么理解平均负载

一    怎么理解平均负载

①  如何查看平均复杂

查看'系统负载'的命令: top、'uptime'、w、'cat /proc/loadavg'、tload

/proc/loadavg 

  

思考: uptime'每列'输出的'含义'?重点: '当前时间'、'系统运行时间'、'正在登录用户数'、'平均负载'

思考:如何'观测'和'理解'这个最'常见'、也是'最重要'的'平均负载'系统指标?

思考: 'man uptime' 理解平均负载

知识点: '可运行'状态和'不可中断'状态进程的理解

linux 进程的六种状态 

引入: '不可中断案例'讲解备注: 不可中断状态实际上是'系统'对'进程和硬件设备'的一种'保护'机制

思考: 如何'更通俗'的理解'负载均衡'?1、平均负载其实就是'平均活跃进程数'2、直观上的理解就是'单位时间内的活跃进程数'3、但它实际上是'活跃进程数'的'指数衰减'平均值

思考: '平均负载'和'cpu个数'关系?绑核: 对于'特定进程或线程'需要绑定到'指定的核'上运行

③  平均负载多少合理

有了'CPU 个数'.我们就可以判断出: 当平均负载比 CPU 个数还'大'的时候,系统已经出现了'过载'

思考: 平均负载有'三'个数值,到底该参考'哪一个'呢?核心: 分析系统负载的'趋势'

思考: 在'实际生产环境'中,平均负载'多高'时,需要我们'重点关注'呢?

④  平均负载CPU使用率关系

CPU密集型和I/O密集型区别

说明:云服务器涉及这'两种机型',CPU、内存、硬盘性能和容量不同.

⑤  案例背景

1、我们以'三个示例'分别来看这'三种'情况2、并用 'iostat、mpstat、pidstat' 等'工具',找出平均负载升高的'根源'遗留: 后续会'开一个专题'讲解iostat、mpstat、pidstat的'综合'使用,这里暂时'局限'某一特性测试'环境': 16 CPU、32GB 内存运行'用户': 以 'root' 用户运行

stress    stress各种测试

强调: 一定要'深入'了解 stress的各种参数含义,这样'压侧'的时候才能结合现象'判断'是否符合预期

⑥  模拟'CPU密集型进程

场景'一': stress '模拟' CPU '密集型' 进程1、第一个'终端'运行 'stress' 命令,模拟一个 CPU 使用率 '100%' 的场景目的: stress '测试cpu' 主要是在'用户态'将cpu'耗尽'

2、接着在'第二个终端'运行 uptime 查看平均负载的变化情况:watch -n1 -d uptime-d 参数表示'高亮'显示'变化'的区域

3、最后在'第三个终端'运行 mpstat 查看 CPU 使用率的'变化'情况:mpstat -P ALL 5-P ALL 表示'监控所有CPU',后面数字5表示'间隔5秒后'输出一组数据

现象:正好有一个 CPU 的'使用率'为 100%,但它的 'iowait' 只有 '0'.结论:说明'平均负载的升高'正是由于 'CPU使用率为 100%' 导致.

  

思考: 到底是'哪个进程'导致了 CPU 使用率为 '100%' 呢?可以使用 'pidstat' 来查询:pidstat -u 5 1备注: -u表示'CPU指标',间隔'5秒后'输出一组数据

pidstat命令详解

⑦  模拟 I/O 密集型进程

友情提示: 做'下一个'实验之前把'上一个'实验复原1、首先还是运行 'stress' 命令,但这次'模拟 I/O' 压力,即不停地执行 'sync':stress -i 1 --timeout 600补充: stress -i 1 --hdd 1 --timeout 600 可以实现'IO负载'的效果

2、在'第二个'终端运行 uptime 查看'平均负载'的'变化'情况:watch -n 1-d uptime

3、然后'第三个'终端运行 'mpstat' 查看 'CPU 使用率'的变化情况:显示'所有CPU'的指标,并在'间隔5秒'输出一组数据mpstat -P ALL 5 1现象:1、其中'一个 CPU' 的系统 'CPU 使用率'升高到了 '63.39%'2、而 iowait 高达 '21.47%'结论: 这说明'平均负载的升高'是由于 'iowait 的升高'

4、思考:到底是'哪个进程'导致 iowait 这么'高'呢?# 间隔5秒后输出一组数据,-u表示CPU指标pidstat -u 5 1  '或'  iotop 观察结论: 平均负载的升高是由于 'iowait 的升高',还是由于 'stress 进程'导致的

iowait 过高问题的查找及解决linux

⑧  模拟大量进程的场景

铺垫: 当系统中'运行进程'超出 'CPU 运行能力'时,就会出现'等待 CPU' 的进程即: 进程 '等待cpu 调度'的场景1、这里我们'还是'使用 stress,但这次模拟的是 '64' 个进程:stress -c 64 --timeout 600

说明: 1)、由于系统有 '16 个CPU',明显比 '64个进程' 要'少'得多2)、因而系统的 CPU 处于'严重过载'状态,平均负载高达'57.89'

2、接着再运行 'pidstat' 来看一下'进程的情况':间隔'5秒后'输出'一组'数据: pidstat -u 5 1

源码安装升级sysstat包     1.11.5 sysstat包下载地址

结论:1、可以看出'64 个进程'在争抢 '16' 个 CPU机制: 某一时刻只能某一个'进程'占用'CPU',这里相当于 '4' 个进程在争抢 '1' 个 CPU2、每个进程'等待 CPU' 的时间 '也就是代码块中的 %wait 列' 高达 75%3、这些'超出' CPU 计算能力的进程,最终导致 'CPU 过载'遗留: 等待cpu进程为什么也'导致CPU利用率高'呢?

⑨  平均负载小结

⑩  补充

/proc/loadavg 平均负载

思考: 遇到客户反馈'慢'的情况,这个时候我们'怎么分析'呢?

说明: 刻意使用'htop'更清晰的查看'负载'

说明: 恰当的'比喻'

思考: 如何观察'线程级别'的工具

思考: ls命令为什么'无法'使用?

思考: '超载'如何计算?

相关文章:

linux性能分析(七)CPU性能篇(二)怎么理解平均负载

一 怎么理解平均负载 ① 如何查看平均复杂 查看系统负载的命令: top、uptime、w、cat /proc/loadavg、tload /proc/loadavg 思考: uptime每列输出的含义?重点: 当前时间、系统运行时间、正在登录用户数、平均负载 ② 思考&#xff1…...

PostgreSQL12中浮点数输出算法优化带来的小问题

最近碰到同事发来这样两个SQL,开发反馈输出的结果异常。 bill# select 0.1284*100::float;?column? --------------------12.839999999999998 (1 row)bill# select (0.1284*100)::float;float8 --------12.84 (1 row) 乍一看其实能看出明显的区别,由于…...

Hive安装配置笔记

版本说明 hadoop-3.3.6&#xff08;已安装&#xff09; mysql-8&#xff08;已安装&#xff09; hive-3.1.3 将hive解压到对应目录后做如下配置&#xff1a; 基本配置与操作 1、hive-site <configuration><!-- jdbc连接的URL --><property><name>ja…...

前端数据可视化之【Echarts下载使用】

目录 &#x1f31f;下载&#x1f31f;浏览器引入&#x1f31f;模块化引入 &#x1f31f;使用&#x1f31f;基本使用步骤 &#x1f31f;绘制一个简单的图表&#x1f31f;写在最后 &#x1f31f;下载 &#x1f31f;浏览器引入 官网下载界面&#xff1a;官方网站 或 Echarts中文…...

本机计算机上的mysql启动后停止

本机计算机上的mysql启动后停止 原因&#xff1a;mysql5.0和mysql8.0配置不同 把my.ini改成以下设置然后再重新 mysqld --initialize-insecure --usermysql然后再启动 net start mysqlmysql8.0 下面的路劲可自定义 [client] default-character-setutf8 [mysql] default-cha…...

Java中ReentrantLock测试线程的安全

使用场景 当需要在多线程环境下保证共享资源的安全访问时&#xff0c;可以使用Java中的ReentrantLock来实现线程安全。ReentrantLock是一个可重入的互斥锁&#xff0c;它提供了与synchronized关键字类似的功能&#xff0c;但更加灵活和扩展性强。 下面是一个使用ReentrantLoc…...

Vue-dvadmin-d2-crud-plus-常用配置-row-handle-columns-options

文章目录 1.row-handle columnHeader width minWidth fixed align renderHeader edit view remove remove.confirm remove.confirmTitle remove.confirmText custom 范例1 范例2 2.columns title key width minWidth fixed renderHeader sortable sortMethod sortBy sortOrders…...

【OpenCV实现图像的算数运算,性能测试和优化,改变颜色空间】

文章目录 OpenCV功能概要图像的算数运算性能测试和优化改变颜色空间对象追踪 OpenCV功能概要 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习库&#xff0c;提供了丰富的图像处理和计算机视觉算法。它支持多种编程语言&…...

多级缓存入门

文章目录 什么是多级缓存JVM进程缓存环境准备安装MySQL导入Demo工程导入商品查询页面 初识Caffeine Lua语法初识Lua第一个lua程序变量和循环Lua的数据类型声明变量循环 条件控制、函数函数条件控制 多级缓存安装OpenRestyOpenResty快速入门反向代理流程OpenResty监听请求编写it…...

CentOS卸载LVM磁盘的方法

在客户环境上遇到一个问题&#xff0c;本身的磁盘满了&#xff0c;需要把没有用的lvm逻辑卷卸载掉&#xff0c;然后挂上去&#xff0c;下面记录一下过程。 卸载原磁盘 umount /data # 如果/data目录正在被其他进程使用中&#xff0c;则使用fuser强制关闭&#xff0c;然后Umou…...

ChatGPT:Spring Boot和Maven——Java应用开发的关键工具和区别

ChatGPT&#xff1a;Spring Boot和Maven——Java应用开发的关键工具和区别 Springboot是什么&#xff1f; ChatGPT&#xff1a; Spring Boot是一个用于构建Java应用程序的开源框架&#xff0c;它是Spring Framework的一部分&#xff0c;但旨在简化Spring应用程序的开发。Sprin…...

智能振弦传感器:参数智能识别技术的重要科技创新

智能振弦传感器&#xff1a;参数智能识别技术的重要科技创新 智能振弦传感器是一种能够自动识别传感器参数的高科技产品。它的研发得益于河北稳控科技的不断创新和努力&#xff0c;其电子标签专用读数模块模块TR01将传感器生产和标定过程实现了自动化。该模块将温度电阻两芯线…...

tooltip实现悬停内容染色

一: 通过highlight.js项目实现对json字符串的染色高亮 此项目是jsp文件,并且引用了element-ui/highlight.js的组件 二: 实现效果 三: 代码实现 关键点在于成功引入相关的js及css&#xff0c;并且在tooltip渲染时进行数据染色。再将染色后的数据放到v-html中进行页面渲染(关键方…...

“深入探讨Java JUC中的ReentrantLock锁:实现多线程同步与并发控制“

简介 1、从Java5开始&#xff0c;Java提供了一种功能更强大的线程同步机制——通过显式定义同步锁对象来实现同步&#xff0c;在这种机制下&#xff0c;同步锁由Lock对象充当。 2、Lock 提供了比synchronized方法和synchronized代码块更广泛的锁定操作&#xff0c;Lock允许实…...

Java|学习|多线程

1.多线程的一些概念 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源。 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径。 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0…...

【Python机器学习】零基础掌握VotingClassifier集成学习

为什么一些数据预测模型在复杂场景下表现不如预期? 在当今数据驱动的世界中,企业和研究者面临着如何从大量数据中提取有价值信息的挑战。假设一个电商公司想要通过用户行为数据预测产品销量,通常会使用单一的算法模型,如逻辑回归、随机森林或朴素贝叶斯。但问题来了,如果…...

深入了解JavaScript中的AJAX和HTTP请求

在现代Web开发中&#xff0c;AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;和HTTP请求被广泛应用于实现动态交互式网页。本文将深入探讨AJAX的概念、工作原理以及使用方法。 什么是AJAX&#xff1f; AJAX是一种利用JavaScript和HTTP请求与服务器进行异步通信的…...

第87步 时间序列建模实战:LSTM回归建模

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们介绍大名鼎鼎的LSTM回归。 同样&#xff0c;这里使用这个数据&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal…...

GB/T28181协议介绍

GB/T28181协议介绍 文章目录 GB/T28181协议介绍总体介绍GB/T28181基本结构GB/T28181关键协议流程设备注册设备目录查询实时视频播放流程 GB/T28181协议总结 说到GB/T28181协议&#xff0c;如果你是从事视频监控领域的工作&#xff0c;那对他一定不陌生&#xff0c;在公共安全、…...

光致发光荧光量子检测的作用

光致发光荧光量子检测是一种测试技术&#xff0c;可以用来测量荧光材料的荧光光谱、荧光量子效率和发光寿命等参数&#xff0c;具有高灵敏度、高分辨率和自动化程度高等优点。 光致发光荧光量子检测的应用范围广泛&#xff0c;可以应用于材料科学、生物科学、医学、光学器件、能…...

如何使用4个经过验证的技巧将Android联系人备份到Mac

联系人无疑是我们智能手机上最重要的数据。一旦失去联系&#xff0c;我们就会与这个世界上最亲爱的人失去联系&#xff1b;也许他们是家人、爱人、朋友、同学、同事、学生等。因此&#xff0c;联系人备份对我们来说非常重要。与将iPhone联系人备份到Mac相对容易不同&#xff0c…...

DeepSeek-Coder-V2-Lite-Instruct社区案例集:开发者如何用AI改变编程方式

DeepSeek-Coder-V2-Lite-Instruct社区案例集&#xff1a;开发者如何用AI改变编程方式 【免费下载链接】DeepSeek-Coder-V2-Lite-Instruct 开源代码智能利器——DeepSeek-Coder-V2&#xff0c;性能比肩GPT4-Turbo&#xff0c;全面支持338种编程语言&#xff0c;128K超长上下文&a…...

保姆级教程:用ArduPilot给无人车/船配置避障(附MR72雷达、TFmini Plus参数)

保姆级教程&#xff1a;用ArduPilot为无人车/船配置毫米波与激光雷达避障系统 当你的无人车在野外自动巡航时突然检测到前方障碍物&#xff0c;是紧急刹车还是智能绕行&#xff1f;水面无人船在夜间航行如何避开漂浮物&#xff1f;本文将手把手带你完成从硬件选型到参数调优的全…...

3分钟终极指南:如何永久冻结IDM试用期实现免费使用

3分钟终极指南&#xff1a;如何永久冻结IDM试用期实现免费使用 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script Internet Download Manager&#xff08;IDM&#…...

OpenClaw+SecGPT-14B联动方案:3类网络安全自动化场景实测

OpenClawSecGPT-14B联动方案&#xff1a;3类网络安全自动化场景实测 1. 为什么选择这个技术组合&#xff1f; 去年我在做安全研究时&#xff0c;经常需要重复处理三类任务&#xff1a;分析漏洞报告、检查日志异常、收集威胁情报。这些工作既需要专业判断&#xff0c;又包含大…...

大数据:Hadoop(Yarn)

第1章 Yarn资源调度器Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1.1 Yarn基础架构1.2 Yarn工作机制&#xff08;1&#xff09;…...

Comsol锂离子电池热管理模型

Comsol锂离子电池热管理模型 电化学热耦合模型&#xff1a; 风冷换热方形电池 绝热软包电池 石蜡相变换热圆柱电池模型 21700圆柱电池热失控模型&#xff08;附带说明文档&#xff09;一、引言随着电动汽车、储能系统等领域的快速发展&#xff0c;锂离子电池的应用越来越广泛。…...

一篇大模型Agents工作流优化最新综述

过去&#xff0c;人们总希望一个LLM直接把任务做完&#xff1b;现在&#xff0c;一个更现实的方向正在浮现——针对不同任务设计不同工作流&#xff0c;并让系统在执行前、执行中乃至执行后持续优化这条链路。 近日&#xff0c;Rensselaer Polytechnic Institute&#xff08;RP…...

PyTorch 2.8镜像实战落地:教育机构AI教学平台(图文+视频+LLM)集成方案

PyTorch 2.8镜像实战落地&#xff1a;教育机构AI教学平台&#xff08;图文视频LLM&#xff09;集成方案 1. 教育AI平台的技术挑战与解决方案 现代教育机构在构建AI教学平台时面临三大技术难题&#xff1a;多模态内容生成、算力资源管理和教学场景适配。PyTorch 2.8深度学习镜…...

提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库

提升效率&#xff1a;用快马AI一键生成windows18-hd19风格的CSS组件库 最近在做一个需要windows18-hd19设计风格的项目&#xff0c;这种风格的界面元素特别多&#xff0c;手动编写样式简直让人头大。光是调色板、阴影效果这些基础样式就要折腾半天&#xff0c;更别说那些复杂的…...