SRE:Google运维解密
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

关于长尾问题

构建监控系统时,很多人都倾向于采用某种量化指标的平均值:延迟平均值,节点的平均CPU使用率,数据库容量的平均值等。后两个例子中存在的问题是很明显的:CPU和数据库的利用率可能波动很大,但是同样的道理也适用于延迟。如果某个Web服务每秒处理1000个请求,平均请求延迟为100ms。那么1%的请求可能会占用5s时间。[10]如果用户依赖几个这样的服务来渲染页面,那么某个后端请求的延迟的99%可能就会成为前端延迟的中位数。

区分平均值的“慢”和长尾值的“慢”的一个最简单办法是将请求按延迟分组计数(可以用来制作直方图):延迟为0~10ms之间的请求数量有多少,30~100ms之间,100~300ms之间等。将直方图的边界定义为指数型增长(这个例子中倍数约为3)是直观展现请求分布的最好方式。