【性能测试】性能测试监控关键指标

系统指标

检测性能测试是否有bug的关键指标

1、系统指标——与用户场景及需求直接相关。

  • 并发用户数:某一物理时刻同时向系统提交请求的用户数。
  • 平均响应时间:系统处理事务的响应时间的平均值,对于系统快速响应类页面,一般响应时间为3s左右。
  • 吞吐量。

2、服务器资源指标——与硬件资源消耗直接相关

  • CPU使用率:一般可接受上限为85%
  • 内存利用率:一般可接受上限为85%
  • 磁盘I/O
  • 网络宽带

性能测试有bug之后继续测试进行调优的关键指标

1、Java应用:

  • JVM监控:JVM内存、Full GC频率

2、数据库:

  • 慢查询
  • 缓存命中率
  • 数据池连接数
  • mysql锁

3、压测机资源

  • CPU
  • 内存
  • 网络
  • 磁盘空间

关于系统指标的基本问题

1、可以直接用来衡量系统处理能力的指标是(吞吐量)。

2、在系统处于轻压力区即未饱和时,并发用户数上升,平均响应时间(基本不变),系统吞吐量(上升)。

3、在系统处于重压力区即基本饱和时,并发用户数上升,平均响应时间(上升),系统吞吐量(基本不变)。

4、在系统处于崩溃区即压力过载时,并发用户数上升,平均响应时间(上升),系统吞吐量(下降)。

硬件服务器资源指标

处理速度:CPU>内存>磁盘

【性能测试】性能测试监控关键指标_第1张图片

CPU

  • 每个程序的CPU使用率 = 在一段时间内每个程序占用的CPU时间 ÷ 总时间

  • 性能测试时统计的CPU使用率 = 用户CPU使用率 + 系统CPU使用率
    电脑中的所有程序及所有操作都要占用需要消耗CPU。
    QQ、微信、浏览器等用户使用的程序消耗CPU,称为用户CPU
    从内存中读取数据、从磁盘中读数据、磁盘管理等操作系统的工作消耗CPU,称为为系统CPU

内存和虚拟内存

1、正常情况下,程序加载到内存中来执行。
2、当内存不够时,会加载部分立即要执行的程序到内存中,其他的程序部分放在磁盘中(虚拟内存)。
3、当立即要执行的程序执行完成后,从虚拟内存中读取其他的数据内容到实际内存中,再执行程序的处理。
4、依次循环第3步,完成程序的运行。

卡的原因的就是:每次都需要从虚拟内存(磁盘)中读取数据进行执行,磁盘的读取速度相对CPU和内存而言非常慢,因此感觉内存不足程序很卡。
闪退的原因就是:在第2步中,需要加载部分立即要执行的程序到内存中,如果当前的内存空间不满足最低要求(立即要执行的程序所需要的内存)时,就会出现闪退。

磁盘IO

固定磁盘IO:500M/s
机械硬盘IO:不超过200M/s
在性能监控时:
(1)监控磁盘实际IO是否已经接近最大值,接近则有问题。
(2)IO队列,如果当前IO队列长度一直不为0,说明磁盘IO有问题。

网络

监控实际的网络流量,与网络宽带做对比,如果实际网络流量与网络宽带接近,则说明网络存在瓶颈,需要优化。

MySQL监控

Mysql常用监控指标

慢查询SQL

  • 慢查询:指执行速度低于设置的阈值的SQL语句。
  • 作用:帮助定位查询速度较慢的SQL语句,方便更好的优化数据库系统的性能。

开启MySQL慢查询日志

参数说明:

  • slow_query_log: 慢查询日志开启状态[ON:开启,OFF:关闭]
  • slow_query_log_file: 慢查询日志存放位置
  • long_query_time: 慢查询时长设置(超过该时长才会被记录,单位:秒)

设置步骤:
1、查询相关参数配置

show variables like 'slow_query%';

【性能测试】性能测试监控关键指标_第2张图片

show variables like 'long_query_time';

【性能测试】性能测试监控关键指标_第3张图片
2、开启慢查询并配置

 set global slow_query_log='ON'; #开启慢查询日志
 set global slow_query_log_file='/data/slow_query.log'; #设置慢查询日志存放位置
 set global long_query_time=1; #设置慢查询时间标准,设置之后会在下次会话才生效

你可能感兴趣的:(性能测试,测试工具)