国庆前给一家软件企业做了《软件性能故障诊断分析流程》,以前给公司或者学习培训主要是讲解测试过程为主,如果是性能测试培训主要是讲解软件性能测试过程整个生命周期各个环境的介绍如在测试前期怎么做好调研怎么规划好各个环节的测试策略以及注意事项等,这次针对性不一样主要是讲解在Loadrunner 测试过程中出现了性能问题时,如何进行问题分析,如在LR的Controller控制器前报120秒超时时或者500等错误信息时,如何在第一时间内进行问题分析定位,主要是讲解内容如下:
Ø影响软件性能因素分析
ØLoadrunner性能测试过程与问题分析
Ø
操作系统性能监控分析
Ø
数据库oracle性能监控分析
Ø中间件weblogic性能监控分析
ØJvm堆模型、GC垃圾收集监控解析
第一、二章节主要介绍,影响软件性能的因素是哪些,软硬件因素引起的,还是人为操作不当引起的性能问题。在用测试工具模拟这些问题场景中出现各种问题如何进行定位分析,如120秒超时时,怎么分析是数据库方面问题,还是应用方面问题,是各个服务参数配置不合理,还是因为代码写法问题引起的,进行分析拆测。
第三章节主要讲解,unix操作系统性能监控分析,针对不同的问题,如何使用各自监控工具进行问题分析,以及内存 CPU IO之间的关联关系,出问题时,如果进行综合性分析。
例如多颗CPU的系统环境下,CPU平均使用很低,但是
其他是在单颗CPU使用率很高,这种死锁问题如何进行问题定位分析等等。还有内存的问题定位分析,这个如果是数据库服务器主要是结合数据库参数配置等,如果是应用服务器内存使用问题,如何使用工具或者
日志等进行问题定位分析。这个主要是根据四、五、六章节一起结合分析讲解。
因为有时出现问题不能独立分析,要综合性的分析才能知道根本原因。
第四章节,主要是诊断数据库的问题监控分析优化等,主要是讲解oracle 10自己包含的各个监控工具的使用,如ASH、AWR、ADDR、ADDM这几个工具的用途,以及怎么把这几个工具结合分析使用。二、如何对各个主要影响数据库性能参数配置的监控分析,如各个参数配置以及命中率情况分析以及解决方案。以及如果是生产环境出现数据库问题,在不能使用监控工具的情况下,怎么去定位分析问题,因为客户方生产系统一般是不能乱装监控工具,万一在出现问题时,如何第一时间去查看问题点进行分析定位等等。
第五、六章节,就是根据在操作系统监控分析出资源瓶颈所在的基础上,如果不是数据库问题情况下,如果进行对weblogic中间件以及JVM的配置等各个性能指标参数等配置以及使用情况进行监控分析优化。
最后根据一个例子来把整个PPT中提到的,各个环节出现的问题串起来。应该说是《一个
SQL引发的性能血案》。
有时SQL写法设计不合理,会引起数据库参数命中率低,而且导致IO瓶颈以及CPU、内存都出现瓶颈,由于数据库的瓶颈导致JDBC连接没法正常连接以及超时释放问题,这样引发了应用服务器CPU不停的监听JDBC是否释放连接等以及间接引发应用内存问题,JVM配置出现问题等。最终导致LR前端显示120秒超时或者500错误信息等。其实最终问题是SQL写法问题引起的。并大概介绍了SQL从前端发起到JAVA代码、weblogic环节封装,到数据库如何软、硬解析影响共享池等参数最终怎么查询出数据怎么组装数据返回到应用,这些数据怎么影响应用内存参数,到最终怎么展现给客户端等等。
整个PPT讲下来花费3个小时。时间确实比较紧张。没办法把整个性能诊断分析流程讲解非常细致。但是结合这次讲课我也趁机把以往的知识沉淀下来。以前曾经把各种服务器的监控,中间件的监控、JAVA代码的问题监控分析以及部分优化方法整理成word的文档,但是还没整理出PPT,刚好趁这个机会重新稳固下。