1:性能测试相关概念
1:技术手段
并发测试(不存在绝对并发,线程+集合点):多用户并发访问
负载测试:通过持续不断的增加负载量(用户数),找到系统的{吞吐量,TPS(每秒事务数),并发量,响应时间,系统占用(内存,cpu)}拐点---目的拐点
总TPS=总线程*单线程tps(运用jp@gc - Transaction Throughput vs Threads监听器)
压力测试:
1:稳定性压力测试
1:维持tps高值持续一段时间运行
2:资源饱和(cpu饱和 )持续一段时间运行
目的:发现内存泄露出
2:破坏性压力测试
极限负载情况下导致系统崩溃
3:失效恢复测试
用于验证部分系统发生故障时,整个系统是否能够继续让用户使用的能力
4:容量测试
按线上真实业务比例分配进行测试
2:稳定的环境(性能测试准入条件):
网络:带宽稳定,规避网络高峰期
3:jmeter配置
日志设置:log.error级别
查看结果数勾选仅日志错误:
4:测试方案
1:确认可能的并发数:注册用户:1万 在线用户:取注册用户的10% 并发用户
2:明确期望的响应时间和吞吐量
通过并发用户判断响应时间的阀值
通过响应时间阀值判断最大并发
3:明确测试场景
1:单接口 2:多接口业务
4:明确监控对象(全链路监控)
1:压力机:压力工具 和本机(window和linux)
2:应用层:tps,响应时间,活动线程
3:中间件服务层:中间件监听,JVM监听[jdk],Mysql监听,0S监听
4:网络层:wireshark监听
5:准备工具
wireshark spotlight(window linux mysql) jdk 工具(jconsole jmc jvisualvm) serveragent
6.准入检测(空载)
JVM内存 cpu利用率(10%) 磁盘和内存总量都小于30%
7:性能指标(先确保没有error在进行测试,不然没有意义)
1:每秒请求数:RPS
jmeter能支持多少线程
2:每秒事务数:TPS(优化接近RPS)
3:响应时间
用户角度:浏览器加载 服务器响应 页面2次渲染
压力机角度:tcp连接 服务器响应
4: cpu:us+sy正常在50-70之间(持续) 太低:cpu浪费 太高:压力过载
内存:使用持续高于80%是有问题 (free -m)
load:负载持续不能高于内核总数 (top下敲1查看内核总数)
负载0.00+0.00+0.07<2