关于性能诊断的方法,我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手,包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么,这里我们归纳了自上而下的资源分析法和发散的异常信息分析法。找到直接原因之后,再去从问题的根源上去分析,包括软件架构的分析、部署架构的分析和业务架构的分析。
问题现象分析方法-时间分布诊断方法
·通信时间
这一部分我们需要重点关注通过测试工具所抓取的业务的处理时间和事务的平均响应时间,用到的工具有测试工具(LoadRunner)和网络抓包工具(Wireshark、HTTPWatch)
·计算时间
计算时间我们可以借助一些更高级的诊断工具,像Diagnostics、Dynatrace,它会对SQL的响应时间,包括方法的响应时间都会有相应的抓取的数据。再就是基础软件产品监控工具(OS、DB、AS)和日志工具(Log4J),比较成熟的语言和框架都会有相应的日志组件,我们可以通过它们去输出日志。
·存储时间
存储时间和计算时间是比较类似的,你可以通过一些工具去把存储的时间抓取出来。也是需要诊断工具( Diagnostics、Dynatrace )、基础软件产品监控工具(OS、DB、AS)和日志工具(Log4J)。
通过时间分布诊断方法,我们可以明确出来处理时间消耗在了哪里,适用场景的话一般是处理时间消耗过多和处理环节过多这些情况一般需要使用时间分布诊断方法。
下面是给大家列的跟时间分布相关的一些可能存在潜在问题的对象。
通信时间
网络吞吐量(硬件设备、协议、OS)
网络传输内容(缓存、文件)
计算时间
硬件设备计算时间(设备硬件、嵌入式程序)
技术架构计算时间(软件架构、部署架构、协议)
应用程序算法和数据结构计算时间(数据序列化、传输)
基础软件、组件计算时间(OS、DB、组件参数配置)
存储时间
硬件设备存储时间(设备硬件、嵌入式程序)
技术架构存储时间(软件架构、部署架构)
程序算法和数据结构存储时间(队列读写)
基础软件存储时间(文件系统)
接下来的文章还会继续为大家介绍其他性能诊断方法,可点击到主页继续查看。