в debian, monitoring, prometheus

Prometheus: мониторинг IOPS и Disk Latency

prometheus
Наиболее важные параметры производительности дисков — IOPS (Input/Output operations Per Second, операций ввода-вывода за секунду) и Latency (время выполнения операции, задержка перед ответом). Давайте разберемся с мониторингом этих параметров на конкретном примере!

Я не буду углубляться в теорию Disk IOPS и Disk Latency — на просторах Интернета этой информации достаточно много. Считаем, что у нас установлена и настроена система мониторинга Prometheus, а также необходимые компоненты (node_exporter для сбора метрик и Grafana для построения графиков). В данном примере настроим мониторинг параметров Disk IOPS и Disk Latency для жесткого диска, на котором расположена база данных.

Переходим в веб-интерфейс Grafana по адресу http://[IP-адрес сервера]:3000, создаем новый дашборд (назовем его Disk Performance). Для удобства мы будем использовать шаблоны (в этом примере — для интервалов времени), для этого:

  • в меню сверху нажимаем Manage dashboards (выглядит как шестеренка);
  • в открывшемся меню выбираем Templating;
  • для создания переменной нажимаем + New;
  • заполняем поля (как на скриншоте ниже), жмем Add и сохраняем настройки дашборда (кнопка с изображением дискеты в верхнем меню).

grafana

Добавляем новый график, в поле Query вводим метрику rate(node_disk_read_time_ms{instance='db1:9100',device='sdc'}[$interval])/rate(node_disk_reads_completed{instance='db1:9100',device='sdc'}[$interval]), а в поле Legend format вводим Read: {{device}}. На этом же графике добавляем еще одну метрику — в поле Query вводим rate(node_disk_write_time_ms{instance='db1:9100',device='sdc'}[$interval])/rate(node_disk_writes_completed{instance='db1:9100',device='sdc'}[$interval]), в поле Legend format вводим Write: {{device}}.

С помощью соседних вкладок меню, расположенного под графиком, выбираем единицы измерения для шкалы Y (ms), название графика (Disk Latency), стиль отображения графика/легенды — на ваше усмотрение. В моем случае получился такой график:
disk_latency

Для отображения Disk IOPS можно создать отдельный график или же отобразить данный параметр на только что созданном графике Disk Latency. Какой бы вариант вы не выбрали, нужно будет использовать метрику rate(node_disk_reads_completed{instance='db1:9100',device=~'sdc'}[$interval])+rate(node_disk_writes_completed{instance='db1:9100',device=~'sdc'}[$interval]) для ввода в поле Query, а в поле Legend format IOPS: {{device}}.

Примечание. Не забудьте изменить единицы измерения для шкалы Y — теперь это будут I/O ops/sec (iops).

В моем случае графики выглядят следующим образом:
disk_latency+iops

Рост значений Disk IOPS и Disk Latency начиная с 5:00 — не что иное, как создание резервной копии базы данных с помощью утилиты Percona XtraBackup.

Добавить комментарий