90-й перцентиль - це показник, який часто зустрічається в аналітиці, статистиці, моніторингу серверів та тестуванні продуктивності. Але що саме він означає?
Уявімо, що ми виміряли час відповіді сервера для 1000 запитів і відсортували всі результати від найшвидшого до найповільнішого.
90-й перцентиль (P90) - це значення, нижче або на рівні якого знаходяться 90% усіх вимірювань.
Наприклад, якщо:
P90 latency = 500 мс
це означає, що 90% запитів виконалися за 500 мс або швидше, а приблизно 10% були повільнішими.
Чим перцентиль відрізняється від середнього?
Припустимо, 9 запитів виконалися за 100 мс, а один - за 10 секунд.
Середнє значення буде:
(9 × 100 + 10 000) / 10 = 1090 мс
І може здатися, що система в середньому відповідає більше секунди.
Але це не дуже добре показує типовий досвід користувача: більшість запитів насправді виконувалися за 100 мс.
Перцентиль дозволяє краще побачити саме розподіл результатів.
P50, P90, P95 і P99
Найчастіше можна зустріти:
- P50 - медіана. 50% значень нижче цього показника.
- P90 - 90% значень нижче цього показника.
- P95 - 95% значень нижче цього показника.
- P99 - 99% значень нижче цього показника.
Наприклад: Це означає, що половина запитів завершилася за 120 мс або швидше, 90% - за 300 мс або швидше, 95% - за 450 мс або швидше, а 99% - за 1,2 секунди або швидше.
Навіщо це потрібно?
Перцентилі особливо корисні для performance testing та monitoring.
Середнє значення може приховувати повільні запити. Наприклад, середня latency може бути 200 мс, але P99 - 5 секунд. Тоді для невеликої частини користувачів система працює дуже повільно.
Тому в production часто дивляться не лише на average latency, а на P90/P95/P99.
І тут є важливий момент:
P90 = не "90% запитів займають саме стільки часу".
Якщо P90 дорівнює 500 мс, це означає, що 90% запитів займають не більше 500 мс, а не що кожен із цих запитів триває рівно 500 мс.
Простіше кажучи:
90-й перцентиль показує поріг, до якого вкладається 90% вимірювань.
А решта 10% - це вже "хвіст" розподілу, де можуть ховатися найповільніші запити, проблеми з базою даних, піки навантаження або інші performance-проблеми.
Цейво!Відреагуй!
🧵
Цей допис поки що не має жодних доповнень від автора/ки.