Skip to content

Latest commit

 

History

History
65 lines (55 loc) · 8.44 KB

File metadata and controls

65 lines (55 loc) · 8.44 KB

Метод USE

Метод USE (Utilization, Saturation, Errors - потребление, насыщение, ошибки) предназначен для анализа с точки зрения ресурсов. Относится к анализу наблюдений. Его следует использовать на ранних этапах исследования для выявления узких мест. Также подходит для оценки нагрузки на систему, определения ее предела. Фокусируется на анализе ограниченного числа ключевых метрик, поэтому все системные ресурсы проверяются очень быстро.

Время на реализацию минимально из-за использования системных утилит:

  • Вручную: во время тестирования можно быстро снимать показания одной командной mpstat -P ALL 1 для CPU, например, получая показания в реальном времени.
  • Автоматизация: требуется больше времени на настройку скриптов или систем мониторинга, но метод все равно остается простым и быстрым.

Накладные расходы:

  • Основные расходы связаны со сбором и аналитикой данных (хранение логов, настройка самого сбора данных). Сам метод не требует больших вычислительных или инфраструктурных затрат
  • Затраты ресурсов из-за утилит минимальные, так как они используют легковесные системные вызовы для чтения статистик, собранных ядром из /proc, /sys.

Он заключается в проверке потребления, насыщения и ошибок для каждого ресурса:

  • Ресурс - функциональные компоненты физического сервера. Также можно брать некоторые программные ресурсы, если это имеет смысл.
  • Потребление - процент времени для заданного временного интервала, в течение которого ресурс обслуживал рабочую нагрузку. Как правило, выражается в процентах за интервал времени.
  • Насыщение - состояние ресурса, когда для него есть дополнительная работа, но он не может приступить к ее выполнению немедленно, из-за чего задания вынуждены ждать в очереди. Как правило, выражается как длина очереди ожидания.
  • Ошибки - количество ошибок.

Порядок проверок (при выявлении проблемы подразумевается ее разрешение перед переходом к следующему этапу):

  1. Ошибки
  2. Насыщенность
  3. Потребление

Уточнения

Процессор:

  • Потребление: время, в течение которого процессор был занят (когда выполнялся поток бездействия)
  • Насыщение: время, в течение которого потоки, готовые к выполнению, ждали своей очереди выполнения на процессоре
  • Ошибки: ошибки процессора, включая исправимые ошибки
  • Упомянутые инструменты:
    • vmstat 1 - содержит информацию о проценте времени выполнения в режиме пользователя (us), системы (sy), а также процент времени бездействия (id).
    • mpstat -P ALL 1 - статистики производительности процессоров. Содержит информацию о проценте времени выполнения в режиме пользователя (%usr), системы (%sys), а также процент времени бездействия (%idle)
    • sar -P ALL -q - выводит ту же информацию, что и vmstat 1 и mpstat -P ALL 1
    • pidstat

Память:

  • Потребление: сколько памяти используется и сколько доступно
  • Насыщение: частота сканирования страниц, подкачки страниц и событий OOM killer
  • Ошибки: программные или аппаратные ошибки
  • Упомянутые утилиты:
    • vmstat - статистики si so могут охарактеризовать подкачку страниц
    • dmesg - проверка наличия сообщений OOM killer
    • cat /proc/pressure/memory - информация о насыщении памяти, о задержках за последние 5 минут
    • sar -B - команда выводит информацию о статистике подкачки страниц

Диски:

  • Потребление: время в течение которого устройство было занято
  • Насыщение: время в течение которого запросы на ввод/вывод ждали своей очереди
  • Ошибки: ошибки устройства
  • Упомянутые утилиты:
    • MegaCli, smartctl, cciss-vol-status, cpqarrayd, varmon, dpt-i2o-raidutils - информация об ошибках
    • iostat -sxz 1- выводится информация о потреблении дисков (%util), среднем время обслуживания (await), количестве операций ввода-вывода в секунду (tps). При использовании команды без флага -s часть метрик будет разбита на компоненты , соответствующие операциям чтения, записи, синхронизации и усечения.
    • sar -d - информация о насыщении и потреблении, аналогичная iostat -x 1
    • cat /proc/pressure/io - информация о насыщении ввода/вывода, о задержках за последние 5 минут.
    • pidstat -d - статистики потребления дискового ввода/вывода, например, пропускная способность в Кб/с (kB_rd/s, kB_wd/s), время, в течение которого процесс был заблокированным (iodelay)
    • biolatency - задержки ввода/вывода в виде гистограммы

Сеть:

  • Потребление: время в течение которого интерфейс был занят отправкой и получением фреймов
  • Насыщение: размеры дополнительных очередей, буферов или наличие фактов блокировки из-за занятости сетевого интерфейса
  • Ошибки: ошибки приема и передачи пакетов
  • Упомянутые утилиты
    • nicstat -z 1 - статистики сетевого интерфейса, пропускная способность (rKB/s, wKB/s), насыщение (Sat) и максимальное потребление (%Util).
    • ip -s link - команда позволяет увидеть счетчики ошибок. При использовании ip -s -s link выводится расширенная информация об ошибках
    • netstat -i содержит счетчики отброшенных пакетов (DRP) и пакетов, вызвавших переполнение (OVR), что можно использовать при оценке насыщения интерфейса