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

news2024/11/15 8:43:32

一    怎么理解平均负载

①  如何查看平均复杂

查看'系统负载'的命令: 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' 个 CPU

  2、每个进程'等待 CPU' 的时间 '也就是代码块中的 %wait 列' 高达 75%

  3、这些'超出' CPU 计算能力的进程,最终导致 'CPU 过载'

遗留: 等待cpu进程为什么也'导致CPU利用率高'呢?

⑨  平均负载小结

⑩  补充

/proc/loadavg 平均负载

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

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

说明: 恰当的'比喻'

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用 Databend + COS助力 CDH 分析 | 某医药集团

作者: 黄志武 某医药集团信息中心数据库组组长,13 年数据库行业从业经历,Oracle OCM,关注 Oracle、MySQL、Redis、MongoDB、Oceanbase、Tidb、Polardb-X、TDSQL、CDH、Clickhouse、Doris、Databend 等多方面的关键领域技术&#…

JavaScript对象与原型

目录 对象的创建 原型与原型链 原型继承 总结 在JavaScript中,对象是非常重要的概念之一。它们允许我们以一种结构化的方式存储和组织数据,并提供了一种方便的方式来操作和访问这些数据。而对象的行为和属性则通过原型来定义。 对象的创建 在JavaS…

如何集成验证码短信API到你的应用程序

引言 当你需要为你的应用程序增加安全性和用户验证功能时,集成验证码短信API是一个明智的选择。验证码短信API可以帮助你轻松实现用户验证、密码重置和账户恢复等功能,提高用户体验并增强应用程序的安全性。本文将介绍如何将验证码短信API集成到你的应用…

备受欢迎的数字音频工作站 Studio One 新增了对 Linux 的支持

导读音乐制作人们,这是你们翘首以待的消息。备受欢迎的数字音频工作站 Studio One 新增了对 Linux 的支持。 数字音频工作站(DAW) 已经成为音乐制作专业人士重要工具之一。 遗憾的是,对于 Linux 用户而言,选择十分有…

聚焦生成式AI前沿技术:亚马逊云科技生成式AI构建者大会圆满结束

目前生成式AI应用落地已经从热火朝天的“百模大战”,步入到了少数优秀模型脱颖而出,工具链百花齐放,以及企业主管认真寻找生成式AI落地场景的新阶段。基于这一背景,亚马逊云科技特地举办了亚马逊云科技生成式AI构建者大会&#xf…

Python 深浅拷贝使用与区别

什么是拷贝: python 中拷贝是指创建一个新的对象,其中包含了原始对象的值,以便于在不改变原始对象的情况下进行操作。拷贝在处理数据时非常有用,特别是当我们需要对数据进行修改而又不想影响原始数据时。 2.浅拷贝 浅拷贝的规则…

跨境安全 | 在美国做电商,千万要小心这5类信用卡欺诈手段

信用卡业务在美国早早出现并迅速完善,其支付方式的普及程度也非常高。根美国信用报告中心(American Credit Bureau)数据显示,截至2021年底,美国共有超过2.5亿信用卡用户,其中超过80%的成年人持有至少一张信…

19 行为型模式-模板方法模式

1 模板方法模式介绍 模板方法模式(template method pattern)原始定义是:在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 2 模板方法模式原理 模板方法模式的定位很清楚,…

从洋河“一带一路”之行,思考白酒国际化的破题道路

在古老的丝绸之路上,岁月不仅留下了无数行商足迹和边塞诗词,也写下了中国白酒出海最初的篇章。 作为一种文化交流的媒介,白酒曾随着陆上和海上丝绸之路来到世界各地,一度成为“世界潮品”。 千年后的今天,为了寻找新…

测试左移与右移

测试左移 对于需求,代码,质量,效率,《代码大全》很早就从软件工程实践角度说明了一个bug产生的不同阶段,修复一个bug的成本从需求阶段,设计阶段,测试阶段有着天壤差别。不仅从成本上&#xff0…

【C语言】详解数据在内存中的存储

目录 1. 整形在内存中的存储1.1 原码、反码、补码1.2 大小端介绍1.3 设计一个程序来判断当前编译器的字节序: 2. 有符号char和无符号char在内存中存储的区别2.1 有符号char(signed char/char)2.2 无符号char(unsigned char) 3. 浮点型在内存中的存储3.1 浮点数存储规…

RK356X/RK3588构建Ubuntu20.04根文件系统

文章目录 前言一、官网下载ubuntu-base二、挂载并构建文件系统2.1、配置构建文件系统环境2.2、编写挂载脚本mount.sh并安装相关工具2.3、轻量级的桌面环境 lubuntu-desktop2.4、卸载一些不必要的软件2.5、添加用户2.6 、允许root用户登录桌面2.7、串口自动登录2.8、添加分区释放…

Android期末考考前盘点(八):各类控件事件--使用内部类的更合适懵逼的考试学生方式

这个系列----Android的期末应急方案 在上学期的期末收获了一致好评,但是在上学期期末考试中发现部分考生不会,或者说考试题目中会出到一些事件,例如:Button按钮的点击事件、长按事件;EditView文本框的监听事件、ListV…

HFSS笔记——求解器和求解分析

文章目录 1、求解器2、求解类型3、自适应网格剖分4、求解频率选择4.1 求解设置项的含义4.2 扫频类型 1、求解器 自从ANSYS将HFSS收购后,其所有的求解器都集成在一起了,点击Project,会显示所有的求解器类型。 其中, HFSS design&…

Bootstrap之JavaScript的模态框(modal)使用-不离开父窗体的情况下的互动-点击按钮弹出对话框

Bootstrap的JavaScript的模态框(modal)是覆盖在父窗体上的子窗体。通常&#xff0c;目的是显示一个单独的内容&#xff0c;可以在不离开父窗体的情况下有一些互动。 子窗体可以自定义内容&#xff0c;可提供信息展示、交互等功能。 01-一个简单的、基本的模态框示例代码 <…

牛客网刷题-(4)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

优秀采购管理7大必备流程(含模块)展示图(干货!)

企业是一个多人分工完成特定事项&#xff0c;达成特定经济目标的组织&#xff0c;必然存在分工协作&#xff0c;因此必然存在流程。企业管理如果缺乏流程规范&#xff0c;员工思想、行动都难以统一&#xff0c;事务出错率高&#xff0c;人员培养成本高&#xff0c;产品次品率高…

Qt QWebEngine 更换语言

背景 使用Qt QWebEngine开发的应用&#xff0c;在一些场景下&#xff0c;会显示英文文本&#xff0c;比如右键、JS弹出的对话框&#xff0c;所以需要进行汉化&#xff0c;更改语言。 准备翻译文件 Qt有提供翻译好的ts文件&#xff0c;我们可以直接下载ts文件qtwebengine_zh_…

创建资产报错:号码范围 71 没有在号码分配范围内

财务同事在新创建的公司下创建资产出现报错。 原因是没有给这个公司资产分配编码段。 双击报错&#xff0c;查看详细报错。 然后点击继续执行&#xff0c;会直接跳出维护资产编码的页面。从母公司中把字段编码copy一下就好了。 或者 通过事务代码&#xff0c;或者通过下面IMG…

HackTheBox - Starting Point -- Tier 0 ---Fawn

文章目录 一 题目二 实验过程 一 题目 Tags FTP、Network、Protocols、Reconnaissance、Anonymous/Guest Access译文&#xff1a;文件传输协议、网络、协议、侦察、匿名/访客访问Connect To attack the target machine, you must be on the same network.Connect to the Sta…