某一天,领导突然就拉了个会说,我们成立稳定性专项,以测试为主力提升服务的整体稳定性?
当时我的内心是:“what”,性能测试我完全没接触过呀,i am a little tester~而且当初面试的时候也说过,性能我只会用简单的工具,对性能的研究不多呐~
一时之间,我慌了~我该干啥,从哪里开始我都不知道
但是最后吧,鉴于我是打不死的小强的精神,我还是认命的接受了这个任务,换个角度想也是一种新的挑战,自己真实去实践学习,比天天看文档会进步的更快。
于是乎,我就开始了小白的性能测试摸索之路~
-
了解性能相关的基础名词
后端服务指标
主要指标包含:QPS max、CPU总使用率、内存使用率、YGC次数、JVM 数据来源:grafana看板服务看板
-
QPS:主要观察压测过程中,最大支持的QPS是多少
-
CPU总使用率:主要观察压测过着中CPU是否超过70%
-
内存使用率:主要内存使用是否<80%,是否需要调整jvm配置
-
YGC次数:主要观察压测过程中,服务的内存回收是否及时,若未及时回收就会造成YGC,甚至可能造成OLD GC引起服务OOM或stw
-
*关于YGC、OLD GC可自行扩展阅读相关基础知识
数据库指标
主要指标包含:CPU总使用率、内存使用率
其中,衡量指标区分主节点和读节点;主节点负责写数据,修改或增加删除数据的接口,走的是主节点;读节点负责读取数据,通俗的说就是查询的结果大部分是走读节点,当然也有部分接口要求数据的实时性可能也会走主节点。
接口指标
主要指标包含:RT、P90、P95
核心主要关注P90数据更准确,因为压测时服务可能出现突刺等问题,导致该时间点的接口耗时偏高,所以取P90的数据会更接近大部分请求的真实耗时;也有人会选择P95作为指标,主要看服务的稳定情况;
接口耗时参考标准:
-
一般接口耗时标准<=200ms
-
调用链路比较长,考虑到链路中转问题,则耗时标准<=300ms
-
统计计算类的接口耗时,则根据实际数据量进行评估
以上仅个人单次性能实践涉及到的一些数据指标,仅供参考~性能还有其他指标,例如ES、Redis等等~