上回说了软件性能问题错误修复大法鉴赏,如果不给出正确方法,那就止步于笑谈。那么软件出了性能问题,究竟应该如何去定位呢?

1.资源

首先,我们要明白一件事,软件发生性能问题,必定是资源不够用了。资源分为硬件资源和软件资源,硬件资源有:

CPU:内存插槽,核心,硬件线程

内存:DRAM,缓存

网络:以太网,WIFI,4G

存储设备:硬盘

控制器:储存,网络

软件资源有:

互斥锁:锁的平均占用的时间是一个重要的指标,等待锁的队列侧面反映了软件的饱和度

线程池:有限的线程处理海量的工作,必然会有事务等待处理

进程/线程/协程容量:系统的进程/线程的数量是有上限的,在 golang、erlang 这种原生支持协程的语言中,协程的数量也不是无上限的

文件描述符容量:系统的文件描述符也是有上限的

2.资源使用的三个维度

资源在使用时有三个维度:utilization(使用率),saturation(饱和度),errors(错误)。我们必须要先弄清楚这三个概念,然后才能查找性能问题。

2.1 使用率

在规定的时间内,资源用于服务工作的时间百分比。

2.2 饱和度

资源不能用于服务额外工作的程度,通常有等待队列。饱和程度可以用排队长度或者排队所花时间来衡量。

2.3 错误

软件运行出错。

3.USE 方法

研究这三个维度,查找性能问题的方法就叫USE 方法,USE 方法是一种研究高使用率、高饱和状态下性能问题最有效的方法。

3.1 工作流程

错误检查优先级最高的,不仅仅时因为修复错误的优先级比较高,更因为错误更容易被发现(只要检查错误日志)。

使用率和饱和度也是有顺序的,只有当使用率高达 100% 的时候,降低饱和度才有意义 [1]。

当你使用 USE 方法的时候,很可能发现了不止一个性能问题,你关心的问题并不会在一开始就出现,你需要多选择几项资源,才能找到你所关心的性能问题。不过,理论上所有的性能问题都应该被修复(在成本允许的情况下)

3.2 资源检查

使用率有两个红线:60%,100%

根据排队理论,60% 意味着优先级较低的工作将会被排在队列后面执行。100% 意味着该资源出现了严重的性能瓶颈,亟待解决。

饱和度:任何程度的饱和都是性能瓶颈。

错误:错误都是值得研究的,不仅仅是为了解决性能问题。

3.3 收费站现象

假设高速公路的收费站,一整天的使用率是 40%,你能据此断定收费站在早高峰的时候没有排队吗?

收费站现象表明了资源即使大部分情况下都是绰绰有余,但是系统依然会出性能问题,只是需要在特定时间点才能观察到。因此,我们还需要预留应急资源,或者异步处理分担峰值压力。

4.作者的话

4.1 吐槽

我一个研究服务端性能的文章竟然找不到话题节点,只能先借用移动性能测试的节点了,麻烦管理员加个服务端性能测试节点。

4.2 性能问题正确的定位方法

4.3 注

[1] 更准确地说,应该是瞬时使用率高达 100%

软件性能测试瓶颈定位,软件性能问题正确定位思路相关推荐

  1. 浅谈软件性能测试,浅谈软件性能自动测试应用

    摘要:软件性能是软件测试工作中的重要一环,首先要正确理解软件性能测试,要从不同的角度去理解:其次要熟悉几种软件性能测试方法,LoadRunner性能测试和Segue性能测试以及PTGM模型是较好的测试 ...

  2. 软件性能测试——瓶颈分析方法,性能测试——瓶颈分析方法

    1.内存分析方法 内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现. 内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器.内存分析的主要方法 ...

  3. 通过Visual Studio诊断工具定位软件CPU瓶颈

    通过VS诊断工具定位软件CPU瓶颈 前情提示:正常情况下我们使用调试模式会看不到诊断工具窗口,控制台会报"无法启动标准收集器.请尝试修复 Visual Studio 的安装. (HRESUL ...

  4. html列表无序嵌套,HTML/CSS - 如何正确定位这些嵌套的无序列表?

    我寻找一些帮助解决与定位包含在其中具有相对定位一个div以下无序列表元素有一个问题IM:HTML/CSS - 如何正确定位这些嵌套的无序列表? 的UL的HTML结构: Your name Your e ...

  5. 穆穆推荐-软件销售行业软件公司销售参考操作手册--之1--公司软件产品的定位分类以及目标客户定位-待续....

    穆穆推荐-软件行业公司销售参考操作手册--之1--公司软件产品的定位分类以及目标客户定位-待续.... 一.      公司软件产品的定位分类以及目标客户定位 在销售之前,我们需要让我们的销售人员清楚 ...

  6. Try-Catch无法正确定位异常位置,我推荐2个有效技巧

    前文传送门,dotNET开发基础汇总系列 推荐20套实战源码 StackOverflow 20万阅读的问题:如何实现异步Task超时的处理 Func和Action委托简单用法 C#异步编程基础入门总结 ...

  7. 【转载】软件性能测试分析与调优实践之路-性能分析调优思想与调优技术总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 一.  性能分析与调优思想 1.性能分析调优模型 性能测试除了为获取性能指标 ...

  8. 《软件性能测试、分析与调优实践之路》学习

    这是一本理论和实践相结合的同时面向研发和测试岗的关于性能分析诊断调优实践的图书,比起其他的很多性能测试的图书,本书中内容更侧重于介绍如何去发现性能问题.分析诊断性能问题以及对发现的性能问题进行调优.书 ...

  9. 软件性能测试分析与调优实践之路-性能分析调优思想与调优技术总结

    来源:https://www.cnblogs.com/laoqing/p/13660768.html 本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之 ...

最新文章

  1. ​脑机技术可以应用于军事领域,有助于评估士兵的认知状态
  2. leetcode算法题--预测赢家★
  3. Lucene mysql app查询_集成Lucene,查询相关数据
  4. 工业以太网在工业控制中的运用
  5. Solr-5.3.1安装配置
  6. map型字段 mongodb_MongoDB极简教程
  7. DataGrip使用: 表的数据迁移-数据导出sql和执行sql
  8. 绝对精辟!10分钟让你全面了解当前世界金融危机
  9. Python用20行代码实现完整邮件功能 [完整代码+建议收藏]
  10. md5加密?什么是不可逆?
  11. ios睡眠分析 卧床 睡眠_在HealthKit中用 Swift 进行睡眠分析
  12. 学习日记day29 平面设计 色彩
  13. WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
  14. 百度研发工程师编程题——买帽子
  15. 编写第一个操作WORD文档的应用程序
  16. 影集制作php源码_最新仿720全景在线制作云平台网站PHP源码
  17. 图片在section上下居中_给0~1岁的新媒体人:公众号怎么配图?免费图片哪里找?...
  18. 要么旅行,要么读书,身体和灵魂必须有一个在路上
  19. Git 各种操作命令详细清单
  20. 企企通聚源池| 聚合海量资源全网寻源,赋能供采双方撮合交易

热门文章

  1. 百万年薪挖了个P8程序员,难道是“水货”?
  2. 程序员你为什么这么累【续】:如何应对需求变更
  3. 计算机初中教师资格教案,初中教师资格证教学设计
  4. file is too short to be an sstable [[Node: save/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT
  5. CVPR 2021 | 微软提出“解构式关键点回归“, 刷新COCO自底向上多人姿态检测记录!
  6. InsightFace tensorRT
  7. Microsoft.VsHub.Server.HttpHost
  8. No module named 'StringIO'
  9. 怎么修改云服务器项目路径,云服务器tomcat的项目路径怎么设置
  10. linux系统的通讯工具,Linux下即时通讯工具:Pidgin 2.5.0正式发布了