性能测试指标及常用监控工具
https://blog.csdn.net/lzj1216/article/details/62042919
监控指标
性能测试通常需要监控的指标包括:
1.服务器Linux(包括CPU、Memory、Load、I/O)。
2.数据库:1.Mysql 2.Oracle(缓存命中、索引、单条SQL性能、数据库[/url]线程数、数据池连接数)。
3.中间件:1.Jboss 2. Apache(包括线程数、连接数、日志)。
4.网络: 吞吐量、吞吐率。
5.应用: jvm内存、日志、FullGC频率。
6.监控工具(LoadRunner[/url]):用户执行情况、场景状态、事务响应时间、TPS等。
7.测试机资源:CPU、Memory、网络、磁盘空间。
监控工具
性能测试通常采用下列工具进行监控:
1.Profiler。一个记录log的类,阿里巴巴集团自主开发,嵌入到应用代码中使用。
2.Jstat。监控java[/url]进程GC情况,判断GC是否正常。
3.JConsole。监控java内存、javaCPU使用率、线程执行情况等,需要在JVM参数中进行配置。
4.JMap。监控java程序是否有内存泄漏,需要配合eclipse插件或者MemoryAnalyzer来使用。
5.JProfiler。全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等,需要在JVM参数中进行配置。
6.Nmon。全面监控linux系统资源使用情况,包括CPU、内存、I/O等,可独立于应用监控。
7.Valgrind。监控C/C++程序是否存在内存泄漏,基于linux环境。
8.Vmmap和ApplicationVerifier。监控C/C++程序是否存在内存泄漏,基于windows环境。
性能分析
可按以下顺序:
中间件瓶颈(apache/jboss参数配置、数据库参数配置)->
应用服务的debug log ->
应用服务的filter log ->
本应用的性能瓶颈(SQL语句、索引、业务逻辑、线程池设置、算法)->
服务提供者的性能瓶颈 ->
相关联的底层存储应用的性能瓶颈
分析标准
通过性能指标的表现形式,分析性能是否稳定。比如:
1.响应时间是否符合性能预期,表现是否稳定。
2.应用日志中,超时的概率,是否在可接受的范围之内。
3.TPS维持在多大的范围内,是否有波形出现,标准差有多少,是否符合预期。
4.服务器CPU、内存、load是否在合理的范围内,等等。
分析工具
对于部分性能指标,可借助自动分析工具,统计出数据的总体趋势:
1.LoadRunner analysis
LoadRunner analysis是loadrunner的一个部件,用于将运行过程中所采集到的数据生成报表,主要用于采集TPS、响应时间、服务器资源使用情况等变化趋势。
2.Memory Analyzer
Memory Analyzer工具可以解析Jmap dump出来的内存信息,查找是否有内存泄漏。
3.nmon_analyser
nmon工具可以采集服务器的资源信息。列出CPU、MEM、网络、I/O等资源指标的使用情况。
术语及缩写词
测试时间:一轮测试从开始到结束所使用的时间
并发线程数:测试时同时访问被测系统的线程数。注意,由于测试过程中,每个线程都是以尽可能快的速度发请求,与实际用户的使用有极大差别,所以,此数据不等同于实际使用时的并发用户数。
每次时间间隔:测试线程发出一个请求,并得到被测系统的响应后,间隔多少时间发出下一次请求。
平均响应时间:测试线程向被测系统发请求,所有请求的响应时间的平均值。
处理能力:在某一特定环境下,系统处理请求的速度。
cache影响系数:测试数据未必如实际使用时分散,cache在测试过程中会比实际使用时发挥更大作用,从而使测试出的最高处理能力偏高,考虑到这个因素而引入的系数。
用户习惯操作频率:根据用户使用习惯估算出来的,单个用户在一段时间内,使用此类功能的次数。通常以一天内某段固定的高峰使用时间来统计,如果一天内没有哪段时间是固定的高峰使用时间,则以一天的工作时间来统计。
预期平均响应时间:由用户提出的,希望系统在多长时间内响应。注意,这个值并不是某一次访问的时间,而是一段时间多次访问后的平均值。
最大并发用户数:在给定的预期平均响应时间下,系统最多能支持多少个并发用户。这个数据就是实际可以同时使用系统的用户数。