性能测试
一、编写目的和适用对象 * 目的:为性能测试项目技术质量评价提供依据,规范技术测试结果评价,统一性能测试技术测试质量度量。
二、系统性能指标
-
交易响应时间 (RT - Response Time)
- 定义:用户从客户端发起请求到接收到服务器返回响应所耗费的时间。通常指平均响应时间。
- 参考标准:
- 互联网企业:< 500ms (例如淘宝业务 ~10ms)
- 金融企业:< 1s (复杂业务 < 3s)
- 保险企业:< 3s
- 制造业:< 5s
- 批量交易:大数据量下,2小时内完成压测。
-
系统处理能力
- 定义:系统每秒钟能够处理的交易数量。
- 简称与度量:
- HPS (Hits Per Second):每秒点击次数。
- TPS (Transaction per Second):系统每秒处理交易数(常用)。
- QPS (Query per Second):系统每秒处理查询次数。
- (通常 TPS 衡量业务流程,QPS 衡量接口查询)
- 标准 (TPS):越大越好。
- 金融:1000 ~ 50000 TPS
- 保险:100 ~ 100000 TPS
- 制造:10 ~ 5000 TPS
- 互联网电商:10000 ~ 1000000 TPS
- 互联网中型网站:1000 ~ 50000 TPS
- 互联网小型网站:500 ~ 10000 TPS
-
并发用户 (VU - Virtual User)
- 定义:同一时刻登录系统并进行业务操作的用户数量。
- 注意:对于短连接系统,吞吐量模式 (RPS模式) 更适合。性能测试目标通常是测出系统处理能力容量,而非特定并发用户数。
-
错误率 (FR - Failure Ratio)
- 定义:(失败交易数 / 交易总数) × 100%。稳定性好的系统,错误率应主要由超时引起。
- 标准:一般不超出 0.6% (成功率不低于 99.4%)。
三、资源指标
-
CPU
- 定义:中央处理器使用情况。CPU Load 指系统平均负载(队列长度)。
- 标准:
- CPU 使用率 < 75%
- CPU sys% < 30%
- CPU wait% < 5%
- CPU Load < CPU 核数
-
Memory (内存)
- 定义:计算机内存使用情况。
- 标准:主要看 SWAP 交换空间利用率,应 < 70%。内存利用率100%不一定代表瓶颈(因缓存)。
-
磁盘吞吐量 (Disk Throughput)
- 定义:单位时间内通过磁盘的数据量。
- 标准:磁盘繁忙率 < 70%。
-
网络吞吐量 (Network Throughput)
- 定义:单位时间内通过网络的数据量。
- 标准:不超过设备或链路最大传输能力的 70%。
-
内核参数 (示例,具体参数众多)
- 目的:确保不超过操作系统设置的参数限制值。
- 常见二级指标示例:
Maxuprc
: 每个用户最大进程数Max_thread_proc
: 每进程最大线程数maxfiles_lim
: 每进程最大文件描述符数shmmax
: System V共享内存段最大大小
- (详细列表见原文表格)
四、中间件指标 (如Tomcat, Weblogic)
- GC (垃圾回收)
- GC频率、Full GC频率、Full GC平均/最大时长、堆使用率。
- ThreadPool (线程池)
- Active Thread Count (活动线程数)、Pending User Request (排队用户请求数)。
- JDBC
- JDBC Active Connection (活动连接数)。
- 标准:
- 运行线程数/JDBC连接数不超过最大值(建议最小50,最大200)。
- GC 不频繁,特别是 Full GC。JVM 堆大小建议最小/最大均为1024M。
五、数据库指标 (如MySQL)
- SQL:耗时 (微秒级越小越好)。
- 吞吐量:QPS (每秒查询数)、TPS (每秒事务数)。
- 命中率 (越高越好,一般 > 95%):
- Key Buffer命中率、InnoDB Buffer命中率、Query Cache命中率、Table Cache命中率、Thread Cache命中率。
- 锁:等待次数 (越低越好)、等待时间 (越短越好)。
六、前端指标
- 页面展示:
- 首次显示时间、OnLoad事件时间、完全载入时间 (越短越好)。
- 页面数量:
- 页面大小 (KB,越小越好)、请求数量 (次,越少越好)。
- 网络:
- DNS时间、连接时间、服务器时间、传输时间、等待时间 (越短越好)。
七、稳定性指标
- 定义:系统在最大容量80%或标准压力下,能够稳定运行的最短时间。
- 8小时工作制系统:稳定运行 > 8小时。
- 7×24运行系统:稳定运行 > 24小时。
- 标准:TPS曲线稳定,无大幅波动;各项资源指标无泄露或异常。
八、批量处理指标
- 定义:批量处理程序单位时间内处理的数据数量(通常 每秒处理数据量)。
- 标准:大数据量下,批处理时间窗口越短越好;不能影响实时交易系统性能。
九、可扩展性指标
- 定义:(增加性能/原始性能) / (增加资源/原始资源) × 100%。
- 标准:理想为线性增长;至少在 70% 以上。
十、可靠性指标
- 双机热备:
- 节点切换成功与耗时、业务中断情况、节点回切成功与耗时、数据丢失量。
- 集群:
- 节点故障时业务中断情况、增/删节点是否需重启系统、故障节点恢复加入集群的影响、节点切换时间。
- 备份和恢复:
- 备份/恢复成功与耗时、是否自动化。
十一、指标体系的运用原则
- 指标选择取决于测试目的和需求。
- 特定系统可能需额外考察用户接入并发能力。
- 批量处理主要考虑处理效率和时间窗口。
- 若测试目标为性能容量,需明确指标需求。
- 获取指标后,需说明前提条件(如业务量、资源情况)。