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

性能诊断的方法(五):架构和业务诊断

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

·软件架构分析方法

软件架构的诊断分析对测试工程师的技术要求是比较高的,可能要达到软件架构师这个层级,才能对这个层级的问题进行一个比较深入的分析。

在这个层级进行分析的时候,需要分析的有通信协议选择、基础软件产品选择、缓存架构和同步异步。

对通信协议选择需要分析比如在传输层是用http好?还是用UDP好?在应用层用哪种通信加密的算法会更好?等等。在基础软件产品的选择这部分,对于每种类型的中间件、数据库都需要一个选型,哪种中间件或数据库最适合我们?甚至MySQL里面都有不同的存储引擎,哪种存储引擎更适合我们软件系统这个场景。

再就是缓存的架构,其实我们大部分性能的提升都是拿空间换时间,我们为了提高响应速度,我们需要大量的缓存,这个缓存涉及到方方面面,甚至我们的cpu里面,它也有不同的缓存,更何况是在数据库层、应用层等等。在整个软件架构的设计里面,也会有缓存的架构,我们应该在哪些方面去做缓存,怎么去设计缓存架构,这都是需要我们去考虑的。

再就是同步异步,这就牵扯到业务的分析了,哪些业务我们需要去做同步操作,哪些业务需要做异步操作。我们大量的处理都是通过异步,我们需要去尽量减少不需要的请求的响应。

软件架构分析方法的目标主要是为软件架构的升级提供参考。适用于问题直接原因已确定,问题优化无法满足需求的情况。

·部署运维分析方法

部署运维分析方法主要是针对基础软件部署运维配置、数据库分库分表、关系数据库统计信息进行分析,这些都有可能带来系统的性能问题。

部署运维诊断分析方法的目标主要是为部署配置调整提供参考、为运维配置调整提供参考,适用于生产环境运行出现问题的情况。

·业务架构分析方法

业务架构的分析可以总结为两大部分:业务功能分和前端界面分析。业务架构诊断的目标是为软件功能性、易用性、性能等方面的平衡性提供参考。适用于问题直接原因已确定,问题优化无法满足需求的情况。

除此之外,还有一些其他的测试诊断方法像比对测试、沟通讨论等。

以上就是性能测试诊断方法系列的全部内容。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高教社杯数模竞赛特辑论文篇-2016年A题:基于极值优化的系泊系统设计
  • 消息中间件有哪些常见类型
  • Redis实现发布/订阅功能(实战篇)
  • 高度可定制的电竞鼠标,雷柏VT1 PRO MAX体验
  • docker拉取 jdk 8
  • 八股文知识汇总(常考)
  • 架构师备考的一些思考(四)
  • 【Hue导入Hive文件类型数据(自动建表)】
  • 网站如何防范BOT流量?
  • 【FATFS】f_mount函数详细解析
  • Python+Pytest框架,“api_key.py文件怎么编写“?
  • Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决
  • ZYNQ LWIP(RAW API) TCP函数学习
  • 每日OJ_牛客_点击消除(栈)
  • 反激电路中TL431光耦反馈参数的计算,环路设计思路
  • 时间复杂度分析经典问题——最大子序列和
  • #Java异常处理
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 2017 年终总结 —— 在路上
  • Asm.js的简单介绍
  • CentOS从零开始部署Nodejs项目
  • Docker入门(二) - Dockerfile
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • export和import的用法总结
  • Go 语言编译器的 //go: 详解
  • Linux gpio口使用方法
  • 欢迎参加第二届中国游戏开发者大会
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端路由实现-history
  • 入口文件开始,分析Vue源码实现
  • 使用putty远程连接linux
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 2017年360最后一道编程题
  • 选择阿里云数据库HBase版十大理由
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • ### RabbitMQ五种工作模式:
  • #QT 笔记一
  • #QT(TCP网络编程-服务端)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2)STM32单片机上位机
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (八)Spring源码解析:Spring MVC
  • (笔试题)合法字符串
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)插入排序
  • .net 连接达梦数据库开发环境部署
  • :O)修改linux硬件时间
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...