什么是P99延迟?

P99延迟代表什么?在关于应用程序性能的讨论中,我经常听到这一点,但在网上找不到谈论这一点的资源。

153134 次浏览

第99个百分位。这意味着99%的请求应该比给定的延迟更快。换句话说,只有1%的请求被允许变慢。

我们可以通过一个类比来解释,如果100名学生参加比赛,那么99名学生应该在“延迟”时间内完成比赛。

假设您正在收集服务的性能数据,下表是结果的集合(延迟值是虚构的,以说明这个想法)。

Latency    Number of requests
1s         5
2s         5
3s         10
4s         40
5s         20
6s         15
7s         4
8s         1

您的服务P99延迟为7秒。只有1%的请求需要超过这个时间。因此,如果可以降低服务的P99延迟,就可以提高其性能。

让我们以在这里为例

Request latency:
min: 0.1
max: 7.2
median: 0.2
p95: 0.5
p99: 1.3
所以我们可以说,99%的web请求,发现的平均延迟是1.3ms(毫秒/微秒取决于您配置的系统延迟度量)。 就像@tranmq说的,如果我们降低服务的P99延迟,我们可以提高它的性能 同样值得注意的是p95,因为可能很少的请求使得p99比p95更昂贵,例如,构建缓存的初始请求,类对象预热,线程初始化等。 所以p95可能会剔除这5%的最坏情况。在这5%之外,我们不知道真实噪声情况与最坏情况输入的百分位数

最后;我们可以有大约1%的噪音在我们的测量(如网络拥塞,中断,服务降级),所以p99延迟是一个很好的代表,实际上最坏的情况。而且,我们的目标几乎总是减少p99延迟。

通过一个类比来解释P99: If 100 horses are running in a race, 99 horses should complete the race in less than or equal to "latency" time. Only 1 horse is allowed to finish the race in time higher than "latency" time. < / p >

这意味着如果P99是10ms,那么99%的请求的延迟应该小于或等于10ms。