前段时间,在对系统进行改版后,经常会有用户投诉说页面响应较慢,我们看了看监控数据,发现从接口响应时间的平均值来看在500ms左右,也算符合要求,不至于像用户说的那么慢,岁很费解,后来观察其它的一些指标发现确实是有问题,这个指标就是P95,P99.9,我们发现虽然平均响应时间并不高,但P95和P99.9却达到了2s以上,说明我们的接口确实存在慢查询。于是捞取了一些慢查询的请求日志终于发现问题。那么P95、P99又代表什么意思呢?
通常,我们对服务响应时间的衡量指标有Min(最小响应时间)、Max(最大响应时间)、Avg(平均响应时间)等。
1 平均值Avg
其中比较常用的值就是平均值,例如平均耗时为100ms,表示服务器当前请求的总耗时/请求总数量
,通过该值,我们大体能知道服务运行情况。
但是使用平均值来衡量响应时间有个非常大的问题,举个例子:众所周知,我和Jack马和tony马的财富加起来足以撼动整个亚洲,我和姚明的平均身高有两米多......
平均值同样有这种问题,这个衡量指标的计算方式会把一些异常的值平均掉,进而会掩盖一些问题,我们只知道所有请求的平均响应时间是100ms,但是具体有多少个请求比100ms要大,又有多少个请求比100ms要小,大多少,是200ms,还是500ms,又或是1000ms,我们无从得知。
2 百分位数值
平均