Linux Labs

Практики SRE: SLO, инциденты, отказоустойчивость / Ступень 1 из 8

SLI: доля хороших запросов

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 6 · на машине · 7 мин

Время ответа: p95

Ошибки — не вся жалоба: корзина ещё и грузится по несколько секунд. Время ответа тоже превращают в SLI.

Первое, что приходит в голову, — среднее время ответа. Оно плохо описывает то, что чувствуют покупатели. Несколько ответов по 60 секунд (504: nginx не дождался backend'а) тянут среднее вверх, а сотни ответов по две секунды теряются среди тысяч быстрых. Среднее за последний час — меньше половины секунды, и оно не говорит, что каждый двадцатый покупатель ждал около двух секунд и дольше.

Поэтому задержку описывают перцентилем. p95 (95-й перцентиль) — время, за которое ответили 95 % запросов; оставшиеся 5 % ждали дольше. Считают его так: времена ответов сортируют по возрастанию и берут строку с номером «95 % от их числа, с округлением вверх». Из 3600 запросов это строка 3420. Так выглядит p95 всего журнала:

bash
log=/var/log/nginx/access.log
sudo awk '{print $(NF-1)}' "$log" | sort -n > ~/sli/times.txt
n=$(wc -l < ~/sli/times.txt)
sed -n "$(( (95 * n + 99) / 100 ))p" ~/sli/times.txt

(95 * n + 99) / 100 — те же 95 % с округлением вверх в целых числах: арифметика оболочки дробей не знает. sort с ключом -n сравнивает строки как числа: без него 10.5 встанет раньше 2.1.

Упражнение · сделать

Найди p95 за час

Найди p95 времени ответа за последний час и запиши его одним числом в секундах в ~/sli/p95.txt.

Войти и начать Машина доступна после входа

Цели · 0 из 1

  • Записать в ~/sli/p95.txt p95 времени ответа за последний час ещё не выполнена
Проверь себя 1 вопрос

В последний час прилетит ещё один ответ — за 120 секунд. Что станет с p95 и средним временем ответа за час?

  • Наоборот: p95 смотрит на место строки в отсортированном списке, а среднее — на сумму, куда 120 секунд войдут целиком.

  • p95 зависит от места строки в отсортированном списке: самый долгий ответ уйдёт в его конец, а строка номер «95 % от n» почти не сдвинется.

  • Среднее складывает все времена: 120 секунд, деленные на ~3600 запросов, прибавят к нему ~0,03 с.

Среднее складывает все времена, и 120 секунд заметно его сдвинут, а p95 — время строки «95 % от n» в отсортированном списке, и один долгий ответ в конце списка её почти не сдвинет.

Цели шага

0 из 1
  • Записать в ~/sli/p95.txt p95 времени ответа за последний час — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 1
  • Записать в ~/sli/p95.txt p95 времени ответа за последний час — ещё не выполнена
Загрузка…