性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法

关于性能诊断的方法,我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手,包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么,这里我们归纳了自上而下的资源分析法和发散的异常信息分析法。找到直接原因之后,再去从问题的根源上去分析,包括软件架构的分析、部署架构的分析和业务架构的分析。这期跟大家聊聊,自下而上的资源诊断方法和发散的异常信息诊断方法。

这两个方法是对性能问题的直接原因进行分析的方法。自下而上的诊断思路是我们先从最底层进行分析,先排除最底层的问题之后,再慢慢往上去分析。为什么要这样做呢?无论我们的行业怎么发展,技术怎么发展,在我们目前的系统架构(冯·诺依曼计算体系架构)下,所有的问题最终都会归结到处理器、内存、磁盘、网络等等这些最基本的元素。所以我们最先要分析的就是这些最底层的相关信息和异常。下图中的这些元素都是我们需要去分析的:

自下而上资源诊断分析的目标是明确资源问题由于哪个层次的问题导致。它适用于问题直接原因已确定了,需要对某个层次进行深入分析的时候。

发散的异常信息诊断方法是从中间层去发现问题。我们发现问题最多的就是中间件、数据库,因为中间件和数据库已经是非常成熟的软件产品了,在这一层获得的异常信息是非常丰富的,由此向下可以对基础软件资源、异常进行分析诊断(硬件设备、操作系统)进行进一步分析,想上可以对应用程序异常进行分析诊断。

目前大部分诊断分析工具也是采用的这种思路,很多诊断分析工具都是从中间件和数据库这个层级去安装和配置,因为它从这里面可以获得最多需要分析诊断的信息。发散的异常信息诊断的目标是明确异常信息由于自身还是哪个层次的问题导致。它适用于问题直接原因已确定,需要对某个层次进行深入分析的场景。

接下来的文章还会继续为大家介绍其他性能诊断方法,可点击到主页继续查看。

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

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

相关文章

Python爬虫使用实例-wallpaper

1/ 排雷避坑 &#x1f95d; 中文乱码问题 print(requests.get(urlurl,headersheaders).text)出现中文乱码 原因分析&#xff1a; <meta charset"gbk" />解决方法&#xff1a; 法一&#xff1a; response requests.get(urlurl,headersheaders) response.en…

Python异常处理:异常的捕获和处理(try, except, finally)①

文章目录 1. 异常处理的基本概念1.1 什么是异常&#xff1f;1.2 为什么需要异常处理&#xff1f; 2. Python异常处理语法2.1 try和except示例&#xff1a; 2.2 else示例&#xff1a; 2.3 finally示例&#xff1a; 3. 捕获多个异常示例&#xff1a; 4. 捕获所有异常示例&#xf…

反激电路中TL431光耦反馈参数的计算,环路设计思路

反馈的过程 当副边的输出电压升高时&#xff0c;TL431参考端电压&#xff08;R端&#xff09;电压也会升高&#xff0c;使得TL431的导通量增加&#xff0c;同时光耦内部的发光二极管流过的电流也会增大&#xff0c;进而使得光耦三极管导通量增加&#xff0c;相连的电源IC电压反…

【Linux】数据链路层

一、数据链路层引入 1.1 数据链路层的功能 在网络层中&#xff0c;我们使用IP协议进行通信&#xff0c;需要进行跨网络转发到目标主机&#xff0c;本质上就是一个报文经历了无数个子网&#xff0c;而数据链路层就是解决在一个子网中如何传输报文的问题。 数据链路层的功能是&a…

H5端接入萤石监控

官方文档 EZOPEN协议 下滑至-平台架构 web/h5端使用文档 <template><div :id"video-container${index}${index2}" class"w-full bg-black"></div> </template><script>export default {data() {return {EZVIZAToken:…

原型模式详细介绍和代码实现

&#x1f3af; 设计模式专栏&#xff0c;持续更新中&#xff0c; 欢迎订阅&#xff1a;JAVA实现设计模式 &#x1f6e0;️ 希望小伙伴们一键三连&#xff0c;有问题私信都会回复&#xff0c;或者在评论区直接发言 Java实现原型模式 介绍: 原型模式&#xff08;Prototype Patte…

Linux查看服务器日志

一、tail 这个是我最常用的一种查看方式 用法如下&#xff1a; tail -n 10 test.log 查询日志尾部最后10行的日志; tail -n 10 test.log 查询10行之后的所有日志; tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)一般还会配合着grep用&#xff…

视频监控平台中的视频处理核心技术揭秘:自动化监控与智能预警成为趋势?

随着科技的飞速发展&#xff0c;视频监控作为安全管理与信息获取的重要手段&#xff0c;其技术也在不断革新与优化。一个高效的视频监控平台&#xff0c;不仅依赖于先进的硬件设备&#xff0c;更离不开强大的视频处理技术作为支撑。在众多视频监控平台中&#xff0c;安防监控Ea…

Linux 文件与目录权限管理指南

文章目录 Linux 文件与目录权限管理指南文件与目录权限的基本概念常用权限管理命令ls -l&#xff1a;查看文件权限chmod&#xff1a;修改文件权限符号模式数字模式 chown&#xff1a;更改文件所有者和所属组chgrp&#xff1a;只更改文件所属组umask&#xff1a;设置默认权限 示…

Autosar(Davinci) --- 创建一个S/R类型的port(下)

前言: 前面章节我们讲解了S/R类型的Port如何创建,这一章节,我们着重讲一下生成的代码,以及我们如何添加代码让这些门与灯之间的关系产生连接。 一、CtSaDoor.c 在【Rte.c】的【IO_TASK】中我们可以看到,反复的判断Rte_Ev_Cyclic_IO_Task_0_200ms这个条件是否成立,当200…

RabbitMQ创建交换机和队列——配置类 注解

交换机的类型 Fanout&#xff1a;广播&#xff0c;将消息交给所有绑定到交换机的队列。 Direct&#xff1a;订阅&#xff0c;基于RoutingKey&#xff08;路由key&#xff09;发送给订阅了消息的队列。 Topic&#xff1a;通配符订阅&#xff0c;与Direct类似&#xff0c;只不…

python如何获取html中的所有链接

在Python中&#xff0c;获取HTML页面中的所有链接通常可以通过使用第三方库如BeautifulSoup或lxml来完成。这里&#xff0c;我将提供一个使用BeautifulSoup库的示例&#xff0c;因为它简单易用且功能强大。 首先&#xff0c;你需要安装BeautifulSoup和requests库&#xff08;如…

数据分析-前期数据处理

今天找到一份关于医学体检的数据&#xff0c;在数据分析前期工作需要对数据做处理&#xff0c;在这里我们对原始数据做一些处理&#xff0c;将数据处理为可分析的标准数据。下一篇文章做数据的分析。数据想要获取的话可以到我的资源下载。1 数据读取 import pandas as pd data…

Vue3 父组件向子组件传值:异步数据处理的显示问题

一、问题场景 假设我们有一个父组件和一个子组件&#xff0c;父组件需要经过一些复杂的计算或者异步操作才能得到要传递给子组件的值。在数据还没有准备好的时候&#xff0c;子组件尝试获取并显示这个值&#xff0c;这就可能导致子组件没有数据可显示或者显示了一个不正确的初…

中国农业银行——数据湖建设

【金融机构开源技术应用创新成果案例 第十五期】 中国农业银行——数据湖建设 技术领域:大数据 技术产品:Hudi、Alluxio、Flink、Atlas、Monaco Editor、AntvX6 业务场景:实时经营管理、实时运维管理、数据运营管理、数据开发 应用时间:2021年12月 一、案例背景 十三…

rust + bevy 实现小游戏 打包成wasm放在浏览器环境运行

游戏界面 代码地址 github WASM运行 rustup target install wasm32-unknown-unknown cargo install wasm-server-runner cargo run --target wasm32-unknown-unknowncargo install wasm-bindgen-cli cargo build --release --target wasm32-unknown-unknown wasm-bindgen --…

SpringBoot动态SQL

目录 动态SQL【重点】 1、 SQL片段 2、if 3、where [重点] 4、 set 5、 foreach 动态SQL【重点】 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘…

python的循环结构

引言 在前面的课程中&#xff0c;我们已经学习了 Python 的基本输入输出、数据类型及其转换、顺序结构和分支结构。本课时将介绍 Python 中的循环结构&#xff0c;主要讨论如何使用 for 循环和 while 循环来重复执行一段代码。通过一个具体的示例——打印九九乘法表&#xff0c…

开源 TTS 模型「Fish Speech」1.4 发布;GameGen-O :生成开放世界游戏视频模型丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、…

yarn webpack脚手架 react+ts搭建项目

安装 Yarn 首先&#xff0c;确保你已经安装了 Node.js 和 Yarn。如果还没有安装 Yarn&#xff0c;可以通过以下命令安装&#xff1a; npm install -g yarn创建项目 使用 create-react-app 脚手架创建一个带有 TypeScript 的项目&#xff0c;node更新到最新版&#xff0c;并指定…