分析服务响应时间分布,如:均值、中位值、P95值、P99值等如何计算

平均值

我们考察一个服务器的性能,除了QPS数据外,还会考察响应时间,当服务器负载增高时,往往会伴随着响应时间的增长,但是这个值该如何度量,以精准的表现服务器当前之负载呢?

最常用的值为平均值,表示服务的平均响应时间,通过该值我们能够知道服务当前响应的所有请求耗时的平均值。 例如平均耗时为100ms,表示服务器当前请求的总耗时/请求总数量,通过该值,我们大体能知道服务运行情况。 但是对于具体有多少个请求的耗时比100ms要大,大多少,是200ms,还是500ms,还是1000ms,我们无从得知。 而且,平均值这个数据容易掩盖一些异常值问题,比如,我的财富加马云财富的平均值也能过亿,所以,平均值这个数据项过于简单,提供的信息量太少。

那为什么我们通常采用平均值来衡量或者监控服务性能呢?

主要是由于该值容易计算。

中位值

如上所述,由于平均值不能反映数据分布及极端异常值的问题,可以考虑采用中位值来作为度量。

中位值如何计算?

我们假设某服务在1s内响应了100个请求,耗时为X1、X2 ... X100,可以对这100个数按照从小到大的顺序进行排序,在排序后的列表的中间位置的值——即为中位值,假设为150ms。

那这个值,150ms,表示什么意思呢? 它表示,服务器响应的这100个请求里面有50个的请求耗时小于150ms,另有50个请求的耗时大于150ms。

如果,我们有一个服务qps为3万/s,经过计算响应耗时中位值为100ms,那么我们可以推断有1.5万个请求的耗时小于100ms,也就是说我们有一半的用户的响应耗时小于100ms,据此我们就可以评估服务响应性能是否可以满足业务要求。

但是,这个中位值还有另外一个问题,我们只知道还有一半的请求耗时大于100ms,具体是大多少,大200ms,还是500ms,我们无法得知。

P95值与P99值

由于中位值只能反映中位数的问题,不能反馈更多信息,例如,我想知道该服务80%的请求耗时在多少ms以内,这些问题需要额外的数据指标。

P95——响应耗时从小到大排列,顺序处于95%位置的值即为P95值。

还是采用上面那个例子,100个请求按照响应时间从小到大排列,位置为95的值,即为P95值。 我们假设该值为180ms,那这个值又表示什么意思呢?

意思是说,我们对95%的用户的响应耗时在180ms之内,只有5%的用户的响应耗时大于180ms,据此,我们掌握了更精确的服务响应耗时信息。

P99.9值

亚马逊经常采用P99.9值,也就是99.9%用户耗时作为指标,也就是1000个用户里面,999个用户的耗时上限,如果测量与优化该值,即可保证绝大多数用户的使用体验。 至于P99.99值,优化成本过高,而且服务响应由于网络波动、系统抖动等不能解决之情况,故暂不考虑该指标。

如何计算P分位值

如上说过平均值的计算方式,而P值需要将响应耗时从小到大排序,然后取得对应百分位之值。

如果服务qps较低,例如:100/秒,记录这100个耗时数据,然后排序,然后取得P分位值,倒不是难事。 而如果qps较高,例如:30万/秒,如果还是采用记录+排序的方式,可以预见需要消耗大量内存与计算资源。

有没有简单的计算方式呢?

可以采用直方图来进行计算,该计算方式虽不是完全准确值,但精度非常高,误差较小。

直方图需要界定两个直方之间的跨度,一般采用等分形式,例如对于耗时统计需求,我们可以假定一个耗时上界,然后等分,比如划分成100个区间,对于每个响应耗时落入对应的直方,如下图:

这样就避免了对全部数据进行排序,只需要根据各个直方中的数据数量,即可计算出95%位置位于哪个直方,然后在该直方内部采用插值方法,计算出P95值。

另外,考虑到数据分布特点,服务耗时异常数据应该只是少数,但是异常值跨度可能很大,大部分耗时数据均靠近正常值,如果直方统计采用等分形式,会导致大量数据堆积在一个直方中,如何解决这个问题?

可以采用非等分的跨度划分方式,例如采用指数形式划分,耗时越低的区间,跨度越小,精度约高。

服务响应时间与分布(p99指标)相关推荐

  1. 服务响应时间与分布 P95 P99

    服务响应时间与分布 https://zhuanlan.zhihu.com/p/62329762 分析服务响应时间分布,如:均值.中位值.P95值.P99值等如何计算 背景 最近看得多,写得少,所谓 学 ...

  2. P95、P99.9百分位数值——服务响应时间的重要衡量指标

    前段时间,在对系统进行改版后,经常会有用户投诉说页面响应较慢,我们看了看监控数据,发现从接口响应时间的平均值来看在500ms左右,也算符合要求,不至于像用户说的那么慢,岁很费解,后来观察其它的一些指标 ...

  3. pps服务器未响应_服务响应时间与分布

    分析服务响应时间分布,如:均值.中位值.P95值.P99值等如何计算 背景 最近看得多,写得少,所谓 学而不思则罔,思而不学则殆 还是得记录笔记,以加强理解. 有篇博客提到服务响应时间各种值之优劣,特 ...

  4. php分布式微服务开发_分布式微服务架构

    学习.跳槽涨薪?请关注 随着业务的不断发展, 用户体量的快速扩张. 从单体/垂直架构转移到分布式/微服务架构是自然而然的选择. 01 分布式理论 分布式理论是分布式系统的基础, 在任何情况下分布式系统 ...

  5. java响应很慢排插_服务响应时间慢:Java SecureRandom和/ dev / random - java

    我正在尝试调试Tomcat上部署的应用程序提供的一些慢速响应. 现在,我主要关注SecureRandom和/dev/random(其他一些可能的原因已被调查并排除). 模式如下: 第一个调用恰好在To ...

  6. 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集

    本博客是深入研究Envoy Proxy和Istio.io 以及它如何实现更优雅的方式来连接和管理微服务系列文章的一部分. 这是接下来几个部分的想法(将在发布时更新链接): 断路器(第一部分) 重试/超 ...

  7. 分布式微服务学习总结——分布式微服务概述

    文章目录 一.前言 二.一个传统的App发展进程 三.为什么要用分布式微服务? 四.什么是分布式.微服务? 1.微服务是什么? 2.微服务架构是什么? 3.分布式是什么? 4.微服务架构和分布式的关系 ...

  8. 量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]

    这是邢不行第 64 期量化小讲堂的分享 作者 | 邢不行.助教林奇 本文内容也有视频版本,点击观看:量化交易中,筹码分布指标如何计算[邢不行] 记得小时候的某个暑假,一边吃西瓜,一边看港剧<大时 ...

  9. python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第  64 ...

最新文章

  1. 让AI学会“哦买尬,买它!”,清北中科院CMU争相角逐顶会Workshop竞赛,淘系技术浙大联手举办...
  2. 清除浮动(clearfix)
  3. CSS布局解决方案(终结版) 1
  4. Java回调函数使用
  5. java metapojo_hibernate错误[org.hibernate.tuple.entity.PojoEntityTuplizer],这是什么错误,怎么解决?...
  6. Qt Windows 下软件 release 发布
  7. vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)...
  8. 导出文件:使用lowagie.itext导出数据为Word文件
  9. c语言与或非,单片机avr c语言位运算 与或非 异或逻辑 运算介绍 详解
  10. 持续近40年的战争 X86系列CPU大史记
  11. linux查看程序bss段,LINUX下目标文件的BSS段、数据段、代码段
  12. 自己搭建Nas(群晖 or TrueNas)
  13. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  14. 人脸检测:经典的VJ人脸检测器(类Harr特征,积分图加速法,级联的Adaboost强分类器)
  15. 产品回顾本讲谈社汉字学习词典(kald)对于卡西欧EX-字的DataPlus系列
  16. python xlsxwriter不覆盖写入_python学习-xlsxwriter模块
  17. python裁剪图片边缘模糊_Python OpenCV 图片高斯模糊
  18. java旧版下载地址_Java下载 - 最新版、历史版本的官方下载地址
  19. Word文档一行分别左右对齐
  20. ubuntu下putty的安装及使用

热门文章

  1. 告别2021,迎接2022
  2. linux连接树梅派(ssh)
  3. 有没有好的python教程推荐_Python Pandas教程推荐,全网最佳,没有之一
  4. Goland配置goproxy.cn代理
  5. java ape切割_ape-j
  6. Angular2+ 表单主动触发验证
  7. Token 认证登录
  8. 计算机教室的防潮防尘措施,中学电脑教室管理制度办法
  9. 2020金属非金属矿山(地下矿山)主要负责人考试题及金属非金属矿山(地下矿山)主要负责人模拟考试题
  10. 26 利用switch语句解决问题 【项目1:投票表决器】【项目2:成绩等级】【项目3:分段函数求值switch语句版】【项目4:本月有几天?】【项目5:个人所得税计算器switch语句版】