p99
最近入职了一家出海的初创公司,原因大概就是双端的包中的ios 包被下架了,我就自然而然的被优化了,再复盘的时候看到 p99 这个关键词,就是p99 不是“99% 的请求时间”,而是第 99 百分位延迟——在统计窗口内,99% 的请求延迟不超过该阈值
p99 语境
把协程的数量/线程(OS 线程)数量的比例作为 W , 其中 P99 延迟,就形成 一个曲线(函数)。
- W 太小,那么干活的 协程少,p99就会高。
- W 刚刚好,排队下降,资源利用合理,p99 就是在最低附近
- W 过大,线程被协程争夺空余的时间片,还会导致内存上涨,p99 肯定会回弹
举一反三 :p50/p70(典型体验)与 p95/p99(长尾),可以按照这个指标判断,你现在的指标是否存在大问题,保证稳定的前提之下肯定有一个规定的指标。
长尾和短尾
-
短尾:整体稳定,极慢请求不多、也不离谱;p50、p95、p99彼此接近。
-
长尾:小比例请求显著偏慢,导致 p95/p99 远高于 p50,长尾意味着需要接入调查。
SLO SLA SLI
-
SLI 就是“尺子”——拿来量的那个数:比如成功率、p99 延迟、可用性。
-
SLO 是“我们自己给自己的目标线”——内部要求:比如“30 天里 99% 的请求 < 300ms”。
-
SLA 是“跟客户拉勾上写进合同的承诺”——没做到要赔:比如“月可用性 ≥ 99.9%,否则按合同赔付/抵扣”。