性能缺陷分析及定位方法

性能测试缺陷

一般有以下两种情况:

  • 不能满足既定的性能指标,如:响应时间、资源耗用等;
  • 并发错误、死锁、内存泄漏

性能缺陷分类

资源忙不来

资源怠工

性能缺陷分析

从下到上剥洋葱的方法,逆向请求分析。

从硬件——操作系统——数据库——中间件——后端应用程序——前端应用程序

实例1

银行应用系统:linux服务器,语言:java,应用服务器:weblogic,数据库:oracle,为了加强安全和稳定增加了流量控制功能(当请求量突然大量爆发,流量控制最大的并发流量,拦截其他流量)。

测试策略:

  • 基本测试。1个用户循环压测5分钟(获得系统在无压力下的基准信息如:响应时间,为后续拐点做对比)
  • 负载测试。10个并发用户单交易的并发测试,验证是否会有并发错误,如:应用锁、数据库锁等
  • 容量测试。多个交易按照一定的比例去配比,在按一定的梯度逐步施压,一直到性能测试结果的拐点,如:响应时间边长、资源占用很大等。
  • 稳定性测试。一定的压力长时间运行,是否存在内存泄漏、数据库是否存在问题、变慢等。‘

执行结果:

容量测试:第一梯度10个用户,响应时间:100ms;第二梯度20个用户,性能缺陷:响应时间出现线性增长为150~200ms。

bug定位步骤:

  • 网络是否有延迟;ping,查看网卡流量(结果:正常)
  • 操作系统:应用服务器、数据库服务器资源耗用:cpu10%,内存也小,(结果:正常)
  • 网络I/O、磁盘I/O:很小(结果:正常)

bug定位结果:

所以问题确定为:系统怠工。证明应用有什么地方有排队现象,类似的现象:高速收费处堵车,但收费处之后的路况却很好,几乎没有车。

bug定位原因:

排队现象可能存在于:

  • 网络:请求很多,网络连接达不到;
  • 应用服务器:高并发多线程会导致死锁户线程锁;
  • 数据库:多个请求也会产生死锁现象。

bug原因定位:

  1. 数据库是否锁:oracle有aw2报告分析oracle运行现状,是否有等待现象。结果:正常
  2. weblogic:控制台和应用日志是否有deadlock、lock、wait现象。结果:正常
  3. 前端:查看连接数是否正常,connection数量是否正常,结果:发现connection数量特别少,实际请求可能过万了,确认问题存在于前端请求阻塞。应该是触发了留空了。但实际上留空是关掉的,可是现象却实际表明是留空触发了,结果:重启应用服务器和数据库服务器后,问题消失了,大约是留空文件写完后,未重启两个服务器导致留空文件未生效吧,真是醉了【眼睛看到的,未必是真实的 哈哈】

《参考:光荣之路公众号》

原文地址:https://www.cnblogs.com/jxba/p/9157621.html

时间: 2024-10-08 14:41:51

性能缺陷分析及定位方法的相关文章

源代码缺陷分析工具 Coverity Static Analysis

能够发现的C/C++缺陷(部分) C/C++安全性问题(部分) 并发 死锁 错误使用的阻塞调用 性能下降 内存泄漏 文件句柄泄漏 定制的内存和网络资源泄漏 数据库连接泄漏 导致崩溃的缺陷 空指针引用 释放后引用 多次释放 不正确的内存分配 不匹配的数组新建/删除 不正确的程序行为 逻辑错误导致的死代码 未初始化变量 负数的无效引用 不正确的APIs使用 STL使用错误 API错误处理 安全编码缺陷 缓冲区溢出 整形溢出 缺失的/不充分的恶意数据和字符串输入的验证 格式化字符串的不安全 SQL注入

linux平台下server运维问题分析与定位

结合我工作中碰到的运维问题,总结一下Linux下server常见的运维问题以及定位方式.这里的server主要指自主开发的逻辑server,web srv因为通常采用通用的架构所以问题比较少. 逻辑server通常的处理能力在3k/s - 1w/s之间,因业务特点而不同.逻辑server一般是自主开发的,虽然在上线前大都经过功能和压力测试,但放到现网环境上部署后还是难免会出现一些问题,有些问题是在灰度发布时就可以发现,而有些问题则是一个漫长的暴露过程.下面先总结一下大致的问题分类和定位方法.  

测试缺陷分析务实篇

测试缺陷分析务实篇 作者:罗耀秋 来源:网络 摘要: 测试活动作为IT项目和产品开发一个重要的环节,通过发现产品或组件的缺陷,并反馈给开发组修复验证这些缺陷,从而在一定程度上保证了外发产品的质量.对这些测试活动发现的缺陷进行深入的分析,可以有助于我们进行质量预测.进行过程改进.量化的衡量产品质量. 关键词: 测试分析.过程改进.质量预测.过程能力.缺陷 正文: 项目研发过程中,我们通过单元测试.集成测试.系统测试发现了大量的缺陷.我们把这些Bug输入到Excel或者其他测试管理系统中,跟踪其解决

性能结果分析

1.性能结果分析 性能结果分析是一个比较复杂的过程.需要综合硬件.操作系统.应用程序等多方面来定位. 1.1.  硬件的影响 硬件对服务器性能影响还是蛮大的,如果是土豪的话,可以直接买最好的.我们分析硬件主要是希望选择合适的配置,节约资源,避免出现高射炮打蚊子的情况. 1.1.1.   CPU 在资金的充足下,一般来说CPU的数量越多,主频越高,那么服务器的性能也就会越好.在实际测试过程中,如果在大压力下持续观察CPU的使用率很低,那么CPU的资源基本上是可以满足服务器要求的.这样的情况其实是有

CPU利用率异常的分析思路和方法交流探讨

CPU利用率异常的分析思路和方法交流探讨在生产运行当中,经常会遇到CPU利用率异常或者不符合预期的情况,此时,往往暗示着系统性能问题.那么究竟是核心应用的问题?是监控工具的问题?还是系统.硬件.网络层面的问题?在上线前的测试过程中,经常会遇到新版本应用的CPU占用率比旧版本高,那么到底是新增的或者变更的什么模块导致呢?面对这种情况,我们应该如何定位和诊断问题的根本原因? 本期专题讨论会分享采用什么样的分析思路.分析方法和分析工具进行CPU使用情况的分析:并帮助大家解答以下问题: 1. CPU利用

移动机器人视觉定位方法的研究

本文针对移动机器人的局部视觉定位问题进行了研究.首先通过移动机器人视觉定位与目标跟踪系统求出目标质心特征点的位置时间序列, 然后在分析二次成像法获取目标深度信息的缺陷的基础上, 提出了一种获取目标的空间位置和运动信息的方法.该方法利用序列图像和推广卡尔曼滤波, 目标获取采用了H IS 模型.在移动机器人满足一定机动的条件下, 较精确地得到了目标的空间位置和运动信息.仿真结果验证了该方法的有效性和可行性. 运动视觉研究的是如何从变化场景的一系列不同时刻的图像中提取出有关场景中的目标的形状.位置和运

Linux命令性能监控分析

Linux性能监控分析   Linux性能测试指标评估 https://blog.51cto.com/364879551/2095709 超全整理!Linux性能分析工具汇总合集 https://www.cnblogs.com/tcicy/p/8461807.html Linux系统性能10条命令监控 https://www.cnblogs.com/qmfsun/p/5729442.html 18个监控网络带宽的工具 https://mp.weixin.qq.com/s?__biz=MzI0MD

SQL Server2005索引碎片分析和解决方法

SQL Server2005索引碎片分析和解决方法 本文作者(郑贤娴),请您在阅读本文时尊重作者版权. 摘要: SQL Server,为了反应数据的更新,需要维护表上的索引,因而这些索引会形成碎片.根据工作量的特征,这些碎片会影响对应的工作性能.此文帮助决定是否需要整理碎片以改善性能的信息.SQL Serve提供一些命令来实现索引的碎片整理.这里比较其中两个命令:DBCC DBREINDEX 和 DBCC INDEXDEFRAG. 关键词: SQL Server;索引碎片;数据库优化毫无疑问,给

WinDbg分析DMP文件方法完全攻略

前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试.在开发人员测试出现的bug,我们可以直接在本地进行调试.如果测试人员测试出崩溃级别的bug,如果我们需要调试往往借助于vs提供的Remote Debugger工具进行远程调试(关于vs2010远程调试的方法,请参考http://blog.sina.com.cn/s/blog_a459dcf5010153o7.html),然是当程序在用户手中出现崩溃此时我们可以采用Remote Debugg