p99,长尾,SLO,SLA 是什么意思?

141 阅读1分钟

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%,否则按合同赔付/抵扣”。