一、性能测试注意点
1. 用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确。
注:进行性能测试时,应注意会影响请求时间的操作,尽量避免因为测试方法不当影响测试结果。
2. 进行稳定性测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死。
减负方式:
(1)参数写死或者直接读取csv的数值,减少程序负荷
(2)并发线程不要设置太高,设置200以下
(3)“察看结果树”勾选“仅日志错误”,尽可能减少jvm内存使用
(4)可添加“Simple Data Writer”且保存为csv格式数据
(5)其他监听组件可以都禁掉,通过保存的数据线下生成图标报告
3. 注意如果服务重启后,PID会发生变化,通过命令行方式收集CPU、内存使用数据时,要使用最新的PID进行采集:
ps -ef | grep test 查询进程号,test为服务名关键字
top -b -d 1 -p 34012 > 1117_log 其中34012为PID,1117_log为需要记录的日志名(不存在会自动新建文档)
4. 如果勾选了CPU等监听组件,需要先启动代理服务:
cd ../tmp/ServerAgent-2.2.3
执行./startAgent.sh
5.使用[email protected] - PerfMon Metrics Collector性能测试工具时,要在运行压力测试前开启性能监控,否则可能会造成压力测试期间的性能测试数据缺失而造成性能分析不准确。
6. 进行压力测试时,逐步增加并发量,直至能够明显看出性能瓶颈为止
二、性能指标分析
聚合报告各项性能指标
聚合报告常用指标 |
|
Label |
每个JMeter的element(例如 HTTP Request)都有一个Name属性,这里显示的就是Name属性的值 |
Samples |
请求次数(=线程数*循环次数) |
Average |
平均响应时间 |
Median |
中位数,也就是50%用户的响应时间 |
90% Line |
90%用户的响应时间 |
95% Line |
95%用户的响应时间 |
Min |
最小响应时间 |
Max |
最大响应时间 |
Error% |
本次测试中出现错误的请求的数量/请求的总数 |
Throughput |
吞吐量——默认情况下表示每秒完成的请求数(Request per Second) |
KB/Sec |
每秒从服务器端接收到的数据量 |
接口性能测试指标一般通过标准:
性能测试指标通过标准 |
|
需满足的并发数 (举例:每天8W用户访问,平均在线时长10分钟,1天用户24小时内使用系统) C = 80000 * 0.166/24=553 注:0.166为10/60得出 |
C = nL/T C^= C + 3*根号C 其中C为平均并发用户数,n为login session的数量,L是login session的平均长度,T是值考察的时间长度 C^为并发用户数峰值 |
需要满足的TPS TPS = (80000*80%)/(20%*8*60*60)=11/sec |
根据二八原则: 20%常用时间,满足80%业务量 TPS = n*80%/(20%*活跃时间*60*60) 注:活跃时间一般为8小时 |
响应时间 |
根据在并发情况下的响应时间2/5/10原则,最长不能超过10s |
错误率 |
具体系统具体要求,一般小于万分之一 |
缓存命中率 |
具体系统具体要求,一般大于85%通过 |
CPU占用率 |
70% 好,85% 坏,90%+ 很差 |
内存使用率 |
一般小于80%通过 |
时间: 2024-10-14 02:06:41