本文收录在猪哥 GitHub:https://github.com/pig6/Java 中,本我的项目收集一线大厂面试、实战、Java 学习路线等。
压测全称为压力测试,是确立零碎稳定性的一种测试方法,通常在零碎失常运作范畴之外进行,以考查其性能极限和隐患。
在开发接口或者性能点实现后,就须要对接口或性能点压力测试,测试出接口的极限以应答较大并发,举一个最间接的例子:淘宝双十一购物节,2018 年淘宝交易创立峰值达到 49.1 万笔 / 秒,而在双十一之前淘宝都要对系统进行压测,看是否可能抗住每年翻新高的并发!
大白话:不停地申请服务的接口,设置每秒的申请量以及持续时间,看看什么时候服务开始解决失败,从而得出服务的性能指标。
一、笔记目标
- 简略意识压测(的目标)
- 介绍压测平台应该有哪些能力
二、压测目标
-
开掘零碎瓶颈点
- cpu 计算能力
- 业务代码(频繁 full gc 等)
- DB
- 线程模型
- 带宽等
-
建设性能基线
- qps(request per second)
- rt(response time)
- 用于线上扩容策略配置等
-
优化零碎性能
- 配置 DB 主从
- jvm 参数优化
- 缓存革新
- 线程模型革新等
三、压测平台应该具备的能力
1. 压测场景
-
rpc 场景(个别为压测单个服务的性能)
- 回放录制的流量
- 自定义的流量
-
http 场景(个别为全链路压测)
- 回放录制的流量
- 自定义的流量
2. 数据
筹备数据用于压测的时候应用
-
录制工作
- http 申请的录制
- rpc 申请的录制
3. 压测参数配置
-
压测类型
- 一般压测(一般循环播放流量)
- 调试(单次流量播放,个别用于调试链路是否接通)
- 递增(设置压测的多个阶段,每个阶段配置不同的 qps 以及继续时长)
-
配置
-
变量配置(单是流量录制是不够的,非凡的接口(比方关注行为)须要变动申请的参数,因而须要反对变量配置)
-
自增变量
- 设置起止值
- 设置步长
-
文件变量
- 读取变量列
-
工夫变量
- 对以后毫秒戳做加减操作
-
计算变量
- uuid
- 区间 random
- 预约义变量(就是写死一个值)
-
-
申请配置
- 指定接口与办法 /url
- 指定机器
- 超时工夫
-
变量
- 指定配置好的变量
-
压测配置
- 初始 qps
- 冀望最大 qps
-
词表配置
- 循环回放流量录制中的流量
-
资源隔离
- DB 隔离
- 缓存隔离
- MQ 隔离
- 静默期(那个时间段不能够进行压测)
-
4. 爱护策略
配置不同的监控项以及异样的解决策略:比方进行压测或者升高压测流量等
-
db 爱护策略
-
配置 db 的告警阈值
- 告警之后主动升高指定的 qps 或者进行压测
-
-
机器爱护策略
- 监控 cpu gc 内存等等等等
- 升高 qps 或者进行
-
服务爱护策略
- 监测申请的响应状况
- 升高 qps 或者进行
5. 监控
配置不同的监控项用于判断性能瓶颈
-
客户端响应状况监控
- qps
- rt
- 错误率
-
服务端监控 ####
- 业务日志
-
机器
- cpu
- 线程池
- 服务接口期待队列大小等
四、压测报告
-
须要输入压测报告用于剖析和记录
- 各个监控项的指标
- 压测后果的指标
- 等等
明天为大家简略列举了一些压测的知识点,当前有工夫再为大家具体介绍哦,欢送一键三连!!!