压测管理

1、压测场景

菜单路径:压测管理>压测场景
在链路与应用信息均准备完善后,可以开始配置压测场景,压测场景指某个具体的需要压测的任务。

1.1新增压测场景



1.点击新增压测场景按钮,打开新增压测场景页面;
2.压测场景支持设置定时启动,以及关闭定时任务。设置了定时任务,仍然可以手动启动当前压测场景,而且不会影响定时任务。
3.压测场景支持增加便签,和通过标签搜索。
4.输入压测场景名称,可自定义;
5.在编辑压测场景时可以设置定时启动,定时的最小时间必须大于保存压测场景时刻 1 分钟。
6.设置本次需要压测的业务活动,
①仅可选择状态为正常的业务活动,若需要压测的业务活动无法选择请先确认状态是否正常;
②需要给每个业务活动设定指标的目标值,包括:TPS、RT、成功率、SA(RT的达标率);
③点击➕可添加多个业务活动;
7.设置本次的施压模式,
①设置最大的并发数;
②设置施压的IP数,根据并发数的设定,系统会给出可选择的IP数量范围区间,指定区间内的某个数值即可;
③设置压测时长,默认单位为分钟,可切换为小时;
④设置施压模式,目前支持三种模式:
[1]固定压力值:以设置的最大并发数恒定施压模式;
[2]线性递增:以线性增压直至最大并发的施压模式,需要设置递增时长,默认单位为分钟,可切换为小时,不可超过压测时长;
[3]阶梯递增:以阶梯增压直至最大并发的施压模式,需要设置递增时长和递增层数,每层的施压时间=递增时长/递增层数,递增时长默认单位为分钟,可切换为小时,不可超过压测时长;
8.SLA配置:压测的特殊协议约定,可设置某些指标出现异常结果时进行报警提醒或立即终止压测,
①输入规则名称,可自定义;
②选择对象,可选择全部或单个业务活动;
③选择指标,可从TPS、RT、成功率、SA中选择;
④设置触发条件和阈值;
⑤设置触发次数;
⑥点击➕可添加多条SLA规则;
⑦终止条件为必填,至少需要一条规则,告警条件可不填;
9.点击保存,保存当前压测场景配置。

1.2编辑/删除压测场景


1.已添加好的压测场景可在场景列表中进行查看,支持编辑、删除。若有已压测的场景,也支持查看报告信息。
2.压测场景右上角会显示当前的可用压测流量与计费规则。

1.3执行压测场景



1.点击启动按钮,可执行压测场景任务,执行前系统会对当前压测场景进行检查,检查项包括:
①压测总开关是否开启;
②所压链路中系统流程状态是否均为正常;
③所压链路中应用接入状态是否均为正常;
④压测脚本与业务活动URL是否一致;
⑤当前可用流量余额是否足够;
2.检查通过后会自动开启压测任务并跳转至压测实况页面;检查不通过则会提示不通过的具体原因,可根据原因进行排查;
3.执行压测任务后至压测任务完成前,系统会根据施压模式预估消耗流量,并冻结这部分额度,当压测执行完毕后会根据实际消耗的流量进行扣费。

1.4压测实况

压测中的任务,会自动跳转至压测实况页面,也可以通过压测场景列表中的实况按钮进入。

1.压测实况页面以每5秒一次的刷新频率显示压测的实时数据,包括:
①当前压测场景的平均指标与告警信息;
②当前业务活动的各项指标与目标值;
③当前各业务活动的指标趋势图;
2.压测过程中,可通过点击右上角的停止压测按钮来随时停止压测任务。

2、压测报告

压测完成的任务均会生成压测报告,可通过压测场景-查看报告按钮查看,也可以通过菜单路径:压测管理>压测报告查看。

1.点击查看报告可打开报告详情页面;
2.报告详情页包括:

①压测基础信息:包括压测的场景名称、报告ID、压测时长、开始时间、消耗流量、执行人员;
②压测结论和结果指标:压测是否通过、具体的告警数量、请求总数、最大并发、TPS、平均RT、成功率、SA;



③问题分析:问题分析指本次压测后产生的问题,包括瓶颈接口与风险机器:
[1]瓶颈接口:瓶颈接口列表是指通过对链路中各接口的性能指标表现进行权重分析后,将其中对链路性能影响较大的接口进行排名展示的列表。
计算逻辑:
1.对所有接口的性能指标进行权重计算,如本接口TPS在链路中所占权重、本接口RT在链路中所占权重;
2.根据各指标权重加权平均计算出各接口的综合性能权重;
3.根据综合性能权重进行降序排序,其中大于平均权重的接口即为瓶颈接口。
[2]风险机器:风险机器列表是指通过分析压测过程中各节点的资源使用情况,并将其中可能存在风险的机器进行展示的列表。
风险判断逻辑:
1.机器宕机;
2.CPU利用率、内存利用率、磁盘I/O等待率、网络带宽使用率超过80%;
3.CPU load大于2。
点击某台机器的性能详情可查看具体的性能指标趋势图:

④压测概览:可查看压测全局或单个业务活动的TPS、RT、成功率、SA的指标趋势;

⑤压测明细:可查看各个业务活动的具体压测明细指标,包括请求数、平均TPS的实际与目标值、平均RT的实际与目标值、请求成功率的实际与目标值、SA的目标与实际值、最大TPS、最大RT、最小RT;
[1]点击RT指标后的图标可查看RT数据的分布请求,包括99%、90%、75%、50%四个分位的指标,代表所有请求中99%/90%/75%/50%的请求RT均低于该指标值;


⑥容量水位:容量水位会统计各应用及应用下的机器节点的容量指标变化情况,包括CPU利用率、CPU load、内存利用率、磁盘I/O等待率、网络带宽使用率,点击应用的水位详情按钮可查看到该应用的全局容量水位,也可以通过点击左侧的IP地址切换至查看单台机器的容量水位变化情况;

⑦告警列表:压测过程中根据SLA设定触发的压测告警信息;


⑧请求流量明细:记录压测过程中所有的具体请求明细数据,每个请求均拥有唯一的TraceID标识,可点击请求详情查看具体的请求采样日志,包括调用的接口服务、所属的应用、携带的参数、请求状态与本次请求的时间轴,日志信息保留15天,过期会自动清除;

3、性能分析

3.1.使用流程

3.2.注意事项

1.性能分析数据源自于Arthas,请确保Arthas已经部署成功,若性能分析模块无法启动,可能是由于Arthas部署不成功导致,详情请咨询数列人员。

3.3操作说明

本文档将以压测用户使用视角描述如何使用相关功能,如文档有未尽事宜,请咨询数列人员。

3.4如何在压测中查看线程分析

合理的线程管理可以降低资源消耗、提高响应速度与稳定性,对于系统的性能表现有着十分重要的影响,因此在压测过程中对于线程的表现也需要进行关注。

线程分析入口:压测实况>容量水位>某一台具体的机器性能详情
1.当我们在压测中查看机器的容量水位时,若出现某台机器的CPU、内存等指标居高不下时,通常需要对其线程情况进行分析,此时可以点击右上角的深度分析按钮进入该应用进程的线程分析页面,注意从不同的机器点击进入时只能看到对应的进程数据;

2.线程分析页面首先会显示一个压测期间线程与CPU利用率随时间变化的曲线,可以通过该曲线查看线程数量与CPU使用率在某些时刻是否发生了异常变化,曲线上提供了数据采样点,采样频率为5秒;可以点击曲线上的某一个点来查看该时刻的线程情况;

3.左下方会根据选取的时刻展示当前所有的线程情况,并按照CPU利用率降序排序,可以直接观察到哪些线程的CPU使用率较高,也可以通过切换状态来查看不同状态下的线程情况;

4.对于某个需要进一步观察的线程,也可以点击其名称,右侧会展示该线程随时间变化的CPU利用率曲线,可用于判断该线程占用CPU是否存在异常;

5.对于已经确认异常的线程,可以点击其方法栈,查看具体有异常的类名和代码行,确定问题所在。
6.所有压测期间的线程与CPU利用率数据均会随压测报告进行存档,可在压测报告中反复查看;

3.5如何在压测中查看内存分析

对于JAVA应用,堆内存的分配与使用情况也会影响到应用的性能标表现,在压测中也需要关注堆内存的使用情况。

内存分析入口:压测实况>容量水位>某一台具体的机器性能详情
1.当我们在压测中查看机器的容量水位时,若出现某台机器的CPU、内存等指标居高不下时,除了线程分析以外也需要对堆内存的使用情况进行分析,此时可以点击右上角的深度分析按钮进入当前进程的内存分析页面或在原线程分析页面的tab进行切换;

2.内存分析页面首先会显示一个压测期间总堆存大小、年轻代使用量、年老代使用量、永久代使用量随时间变化的曲线,可以通过该曲线查看各区域的内存使用情况是否发生了异常变化;
3.也支持将内存dump下来进行本地分析,点击右上角的dump内存按钮即可;
Dump内存操作需要提前创建文件夹,请确保/data/dump 路径的存在
文件比较大(GB 级别),同时也比较消耗机器性能,请谨慎操作。
内存文件名称为 AgentID+时间。
同时只能有一个 Dump 内存任务。

4.结合下方的GC统计可以查看压测期间young gc与full gc的触发频次与耗时,可以观察是否频繁触发了full gc;
5.所有压测期间的堆内存与GC数据均会随压测报告进行存档,可在压测报告中反复查看;

3.6如何在压测中进行方法追踪


当在压测过程中发现某些请求的耗时特别高时,会希望能够进一步分析是具体哪个方法耗时较高,以便可以对这个方法进行性能优化,达到使整体链路性能表现提升的效果,此时可通过方法追踪的功能进行定位。
方法分析入口:压测实况>请求流量明细>请求详情
1.当发现某个请求的某个节点比较慢时,可以点击节点后方对应的开启方法追踪按钮,对该接口/服务背后的方法进行深入的挖掘;

2.输入需要追踪的类名#方法名,点击开始追踪,系统会对此方法最近5秒内的请求进行采样和分析,统计其下一级的所有调用子方法的耗时和所在代码行;

3.此时可以看到子方法中各个方法的耗时,若子方法仍存在下一级调用方法,则可以选择某个耗时较高的方法点击图标,再进一步进行高耗时定位,系统将再次对此方法最近5秒内的请求进行采样和分析,统计其下一级的所有子方法的耗时和所在代码行。可以继续选择耗时较高的子方法重复此操作,直至最终发现真正耗时高的子方法是哪个。
注意:深入追踪最多可以追踪5层,当调用层级较深时,仅能将耗时较高的方法定位到一个较小的层次,可能无法定位到真正耗时高的具体方法;

4.方法追踪同时只能开启一个任务,因此若开启追踪时恰好有其他用户也在发起追踪时,系统会提示追踪失败,此时请等待5秒后重试即可;
5.所有开启过追踪的方法记录均会随压测报告存档,可在压测报告中反复查看,但未追踪过的方法记录将不会存入压测报告;

3.7如何在压测后查看历史数据

所有线程分析、内存分析与追踪过的方法记录均会与当次的压测报告共同存档,可在压测报告中进行反复查看。

入口:压测报告>性能分析报告
1.点击右上角的性能分析报告即可进入本次压测的性能分析记录页面;

2.性能分析报告默认展示第一个应用与进程的数据,如果需要查看其他应用或进程数据需要在右上角选择应用与进程进程查看;

3.每个进程的数据包括线程分析、内存分析、方法追踪,可通过点击tab分页进行切换;


4.线程分析的数据包含压测期间所有数据,操作步骤与前文中如何在压测中查看线程分析一致;

5.内存分析的数据包含压测期间所有数据,操作步骤与前文中如何在压测中查看内存分析一致;

6.方法追踪的数据包含压测期间所有开启过追踪的方法以及追踪过的深度,如果想查看对应的方法请先选择方法所在的应用与进程,再选择方法,点击搜索即可。

文档更新时间: 2021-12-01 11:24   作者:ShuLieVip