测试指标一般分为业务指标、资源指标、应用指标、前端指标

业务指标

  1. 如并发用户数、TPS(每秒处理事务数)、QPS(每秒处理请求数)、成功率、响应时间
    1. 响应时间(RT),一般建议1s内
    2. 业务处理能力(TPS/QPS),一般用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器单击请求
    3. 成功率,一般大于99.6%

资源指标

  1. CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等
    1. CPU资源利用率<= 75%、CPU sys%小于或者等于30%、CPU wait%小于或者等于5%、CPU Load要小于CPU核数
    2. 内存无SWAP
    3. 磁盘繁忙率低于70%

应用指标

空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等

  1. 中间件指标:常见的中间件例如Tomcat、Weblogic等指标主要包括JVM、ThreadPool、JDBC
一级指标 二级指标 单位 解释
GC GC频率 每秒多少次 java虚拟机垃圾部分回收频率
Full FC频率 每小时多少次 java虚拟机垃圾完全回收频率
Full GC平均时长 用于垃圾完全回收的平均时长
Full GC最大时长 用于垃圾完全回收的最大时长
堆使用率 百分比 堆使用率
ThreadPool Active Thread Count 活动的线程数
Penging User Request 处于排队的用户请求个数
JDBC JDBC Active Connection JDBC活动连接数
  • 一般正在运行的线程数不能超过设定的最大值。一般系统性能较好的情况下,线程数最小设置50,最大设置200
  • 当前运行的JDBC连接数不能超过设定的最大值。一般系统性能较好的情况下,JDBC最小设置50,最大设置200
  • GC频繁不能太频繁,特别是Full GC,一般系统性能较好的情况下,JVM最小堆大小和最大堆大小设置为1024M比较合适
  1. 数据库指标:常见的例如SQL、吞吐量、缓存命中率、连接数等 | 一级指标 | 二级指标 | 单位 | 解释 | | —- | —- | —- | —- | | SQL | 耗时 | 微秒 | 执行SQL耗时 | | 吞吐量 | QPS | 个 | 每秒查询次数 | | | TPS | 个 | 每秒事务次数 | | 命中率 | key Buffer命中率 | % | 索引缓冲区命中率 | | | innoDB Buffer命中率 | % | InnoDB缓冲区命中率 | | | Query Cache命中率 | % | 查询缓存命中率 | | | Table Cache命中率 | % | 表缓存命中率 | | | Thread Cache命中率 | % | 线程缓存命中率 | | 锁 | 等待次数 | 次 | 锁等待次数 | | | 等待时间 | 微秒 | 锁等待时间 |
  • SQL耗时越小越好,一般情况下微秒级别
  • 命中率越高越好,一般情况下不低于95%
  • 锁等待次数越低越好,等待时间越短越好

前端指标

  1. 页面加载时间、网络时间(DNS、连接时间、传输时间) | 一级指标 | 二级指标 | 单位 | 解释 | | —- | —- | —- | —- | | 页面展示 | 首次显示时间 | 毫秒 | 在浏览器地址栏输入URL按回车到用户看到网页的第一个视觉标志为止。 | | | OnLoad事件时间 | 毫秒 | 浏览器触发onLoad事件的时间,当原始文档和所有引用的内容完全下载后才回触发这个事件 | | | 完全载入的时间 | 毫秒 | 所有onload javaScript处理程序执行完毕,所有动态的或延迟加载的内容都通过这些处理程序触发的时间 | | 页面数量 | 页面大小 | KB | 整个页面大小 | | | 请求数量 | 次 | 从网站下载资源时所有网络请求的总数,尽量少 | | 网络 | DNS时间 | 毫秒 | DNS查找时间 | | | 连接时间 | 毫秒 | 连接时间就是浏览器与web服务器建立TCP/IP连接的时间 | | | 服务器时间 | 毫秒 | 服务器处理时间 | | | 传输时间 | 毫秒 | 内容传输所用时间 | | | 等待时间 | 毫秒 | 等待某个资源释放的时间 |

稳定性指标

系统按照最大容量的80%或系统的预期日常压力去运行,一般对于正常工作日8小时运行的系统,至少应该保证系统稳定运行8小时。
保证TPS曲线的稳定,没有打幅度的波动、各项资源指标没有泄漏或异常情况