Que représente la latence de P99 ? J'en entends toujours parler dans les discussions sur les performances d'une application, mais je n'ai pas trouvé de ressource en ligne qui en parle.
Réponses
Trop de publicités?C'est 99ème percentile . Cela signifie que 99 % des demandes doivent être plus rapides que la latence donnée. En d'autres termes, seul 1% des demandes peuvent être plus lentes.
Imaginez que vous collectez des données sur les performances de votre service et que le tableau ci-dessous rassemble les résultats (les valeurs de latence sont fictives pour illustrer l'idée).
Latency Number of requests
1s 5
2s 5
3s 10
4s 40
5s 20
6s 15
7s 4
8s 1
La latence P99 de votre service est de 7s. Seulement 1% des demandes prennent plus de temps que cela. Donc, si vous pouvez diminuer la latence P99 de votre service, vous augmentez ses performances.
Prenons l'exemple de aquí
Request latency:
min: 0.1
max: 7.2
median: 0.2
p95: 0.5
p99: 1.3
Nous pouvons donc dire que, pour 99 % des requêtes web, la latence moyenne constatée était de 1,3 ms (les milli secondes/microsecondes dépendent de la configuration des mesures de latence de votre système). Comme @tranmq l'a dit, si nous diminuons la latence P99 du service, nous pouvons augmenter ses performances.
Et il est également intéressant de noter que le p95, étant donné qu'il y a peu de requêtes, rend le p99 plus coûteux que le p95, par exemple, les requêtes initiales qui construisent le cache, les objets de classe se réchauffent, les threads s'initient, etc. Donc p95 peut éliminer ces 5% de scénarios les plus défavorables. Sur ces 5%, nous ne connaissons toujours pas le percentile des cas de bruit réel par rapport aux cas les plus défavorables.
Enfin ; nous pouvons avoir environ 1% de bruit dans nos mesures (comme les congestions de réseau, les pannes, les dégradations de service), donc la latence de p99 est un bon représentant de pratiquement le pire cas. Et, presque toujours, notre objectif est de réduire la latence p99.