关于压测前对线上指标的估算

一、通过线上监控观察(准确度较高)

查看待压测接口的线上监控数据(请求量和RT),可以直接查看该接口的某一段时间的调用峰值,将统计粒度换算为每秒请求量(qps)。

例一:
某接口1天被请求36万次(粗粒度统计),平均RT在100ms,指标计算如下
指标=(日量36万/10小时高峰期/3600秒)x5倍保险系数=50qps、rt100ms

例二:
某接口近期监控显示的请求峰值为1小时36万次(粗粒度统计),平均RT在100ms,,指标计算如下
指标=(时量36万/3600秒)x5倍保险系数=500qps、rt100ms

二、通过相似接口类比(准确度较低)

针对新接口或者线上无监控的接口,但存在类似接口的监控,可以类比计算。

例:
A接口线上指标为50qps、rt100ms,新接口B的使用场景和A相似度很高,那可以将B接口的性能也指标定位50qps、rt100ms

三、估算法(准确度低)

针对新接口或者线上无监控的接口,也没有类似的接口可以参考,仅从产品或者市场调研估算出某一天的量或者某一段时间的量,接下来估算方法和方法一类似。关于RT,如没特别说明,将会采用默认性能要求值(单服务单表类rt<100ms;较复杂接口rt<300ms;大list类或调用链较长接口rt<1s)

例:
通过运营数据得知接口A在1天内要完成36万笔交易,指标计算如下
指标=(日量36万/10小时高峰期/3600秒)x8倍保险系数=80qps、rt100ms

四、其他情况:

除以上场景外,针对新接口无任何数据,无法给出指标值情况,性能压测不再关注指标压测,仅执行阶梯性的负载测试,压测出该接口的最优处理能力。(此情况存在较大风险,上线后需要时刻关注,尽量避免此情形。)

关于估算指标的系数

3倍5倍7倍等系数的作用,一方面是为了解决业务量估算的误差,一方面是为了解决峰值问题(一分钟内60秒,可能某十几秒会很高,其他较低,在一分钟这个维度会出现正态分布的效果)。

至于系数问题,这个和估算过程中统计的粒度和估算业务量有关系,比如当前线上的监控都能监控到秒级,那么拉取这几个月最高的TPS,那就是目标指标的tps,系数就可以不加了。

大部分项目,很多都不知道自己的业务量多少,那为了避免估算的不准确性,这个系数可以适当放大,我们一般测试结束后,都会去关注线上真实的量(来看下之前业务估算的量是否准确、系数是否需要适当调整等等)

总结

综上可知,估算过程中提供的请求总量和时间段越精确,估算出来的指标将会越准确。(另外,估算指标一般都会大于实际线上流量的,因为业务给数据的时候会上浮请求量,而本身又乘以了几倍的峰值系数)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我们经常需要对程序进行压测,怎么压才合适?压到什么样才说明应用达到了性能瓶颈?用什么指标来衡量才合适?一些指标异常...
    少女萌的进击之路阅读 8,381评论 0 0
  • 我们经常需要对程序进行压测,怎么压才合适?压到什么样才说明应用达到了性能瓶颈?用什么指标来衡量才合适?一些指标异常...
    FlySheep_ly阅读 15,590评论 1 11
  • 本文始发自博客:服务端压测怎么做 博文的内容并不都是我原创的,行文思路来源于一次内部分享,再结合网上众多参考资料总...
    拉丁看雪阅读 3,890评论 0 0
  • 单系统压测与全链路压测 为什么只做单系统压测还不够呢? 在活动开始的瞬间,各系统都面临自身服务的巨大的压力,而系统...
    lvyz0207阅读 5,152评论 0 1
  • 前言 第一部分,推荐模块技术点结合实际工作分选品、召回、排序、策略、干预、外显模块叙述各部分使用到的算法和策略。在...
    Yesheng1214阅读 9,490评论 0 3

友情链接更多精彩内容