Назад | Перейти на главную страницу

Понимание примера из книги Google SRE

Я сейчас читаю Книга Google SRE, что очень интересно читать.

В Главе 6 - Мониторинг распределенных систем есть раздел, в котором объясняется, как выбрать подходящее измерение.

Я не понял примера, который привел автор, объясняя важность детализации измерений. Мы можем прочитать:

Сбор посекундных измерений загрузки ЦП может дать интересные данные, но такие частые измерения могут быть очень дорогими для сбора, хранения и анализа. Если ваша цель мониторинга требует высокого разрешения, но не требует чрезвычайно низкой задержки, вы можете сократить эти расходы, выполнив внутреннюю выборку на сервере, а затем настроив внешнюю систему для сбора и агрегирования этого распределения по времени или по серверам.

Ты можешь:

  1. Записывайте текущую загрузку ЦП каждую секунду.
  2. Используя сегменты с детализацией 5%, каждую секунду увеличивайте соответствующий сегмент использования ЦП.
  3. Агрегируйте эти значения каждую минуту. Эта стратегия позволяет вам наблюдать короткие горячие точки ЦП без очень высоких затрат на сбор и хранение.

Может кто-нибудь объяснить часть «5% -ной детализации»?

Детализация 5% означает, что у вас есть 20 различных счетчиков.

Каждую секунду вы смотрите на накопление ядром использованных секунд процессора. И если использование было между 0 и 5 процентами, вы бы увеличили первый счетчик. Между 5 и 10 второй счетчик. И т.д. Между 95 и 100 процентами вы увеличиваете последний счетчик.

Например, если ядро ​​сообщает, что было использовано 810,91 секунды ЦП, а секунду назад - 810,83. Вы бы знали, что использование за последнюю секунду было 8%, что соответствует диапазону от 5 до 10 процентов.

Это пример, и особенности, конечно, будут зависеть от фактических требований, и если вы хотите сделать что-то подобное в многопроцессорной системе, вам придется решить, нужны ли вам измерения по ЦП или измерения в масштабе всей системы.