Скрипты Bash для мониторинга операций ввода-вывода в Linux

Скрипты Bash для мониторинга операций ввода-вывода в Linux

Рубрики:

Linux, Мониторинг

Метки:

Bash, iostat, linux, proc, vmstat

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

  • планировать распределение ресурсов;
  • выявлять узкие места, влияющие на общую производительность ПК;
  • прогнозировать потребности в хранении и обработке данных в операционной системе.

В этой статье мы покажем Вам три скрипта Bash для мониторинга операций ввода-вывода в реальном времени в Linux.

Содержание:

  1. Чтение данных из файла /proc/diskstats
  2. Использование утилиты iostat для сбора статистики по операциям ввода-вывода
  3. Использование функционала vmstat в скрипте Bash
  4. Выводы

Чтение данных из файла /proc/diskstats

Ядро Linux предоставляет виртуальный файл /proc/diskstats, который содержит статистику операций ввода-вывода для всех блочных устройств операционной системы.

Для сбора информации из этого текстового документа в режиме реального времени напишем следующий скрипт:

 

Важно: в этом сценарии переменная DEVICE содержит название устройства хранения, которое будет отслеживаться в процессе мониторинга. Задайте для нее собственное значение.

script 1

 

Этот скрипт Bash будет выводить на экран и обновлять каждые 5 секунд следующую информацию об операциях ввода-вывода:

  • Reads Completed — количество завершенных операций чтения;
  • Reads Merged — количество операций чтения, объединенных с текущими операциями ввода-вывода;
  • Sectors Read — количество прочитанных секторов (обычно сектор составляет 512 байт);
  • Time Spent Reading — время, затраченное на чтение (в миллисекундах);
  • Writes Completed — количество завершенных операций записи;
  • Writes Merged —  количество операций записи, объединенных с текущими операциями ввода-вывода;
  • Sectors Written — количество записанных секторов;
  • Time Spent Writing — время, затраченное на запись (в миллисекундах).

Чтобы запустить скрипт, выполним в терминале:

 

run script 1

Читайте также: Команда procinfo — примеры использования в Linux.

Использование утилиты iostat для сбора статистики по операциям ввода-вывода

Вы можете модернизировать предыдущий скрипт, добавив в него функционал команды iostat. Утилита iostat — это инструмент командной строки в Linux, используемый для мониторинга и составления отчетов об активности ЦП, дискового ввода-вывода и блочных устройств.

Таким образом, код сценария Bash для мониторинга операций чтения и записи на устройстве хранения будет таким:

 

script 2

 

В дополнение к предыдущим данным, Вы получите следующую статистику об операциях ввода-вывода:

  • tps — количество операций ввода-вывода в секунду;
  • kB_read/s — объем информации в килобайтах, прочитанных за секунду;
  • kB_wrtn/s — объем данных в килобайтах, записанных в секунду;
  • kB_read — общее количество прочитанных данных в килобайтах;
  • kB_wrtn — общее количество записанной информацию в килобайтах;
  • kB_dscd/s — скорость освобождения блоков данных на устройстве в килобайтах в секунду;
  • kB_dscd — количество освобожденных блоков на диске в результате выполнения операции trim в килобайтах.

run script 2

Читайте также: Как установить и использовать iostat в Linux.

Использование функционала vmstat в скрипте Bash

Утилита vmstat — инструмент командной строки Linux, предназначенный для мониторинга производительности операционной системы. Эта команда позволяет получить детальную и сводную информацию об использовании ресурсов оперативной памятицентрального процессоразагруженности жесткого диска, операциях ввода-вывода и других показателях.

На основе данных об операциях дискового ввода-вывода, которые собирает утилита vmstat, можно рассчитать изменения в производительности устройства хранения за определенный промежуток времени. Если собрать информацию в начале и в конце заданного интервала, можно узнать разницу в количестве:

  • выполненных чтений и записей;
  • прочитанных или записанных секторов;
  • времени, затраченном на чтение или запись между последовательными измерениями.

Код скрипта выглядит следующим образом:

 

Читайте также: Команда vmstat в Linux с примерами.

Важно: в сценарии инициализируется переменная INTERVAL со значением 5 секунд. Она задает интервал между каждым обновлением данных. Также в файл current_stats.txt временно сохраняется статистика дискового ввода-вывода, полученная в результате выполнения команды vmstat -d. Записанные данные извлекаются и обрабатываются, после чего содержимое current_stats.txt перезаписывается новой информацией в последующих итерациях скрипта Bash.

script 3

Для запуска сценария Bash выполните следующую команду:

 

run script 3

Выводы

Мы показали три полезных скрипта Bash для мониторинга операций ввода-вывода в режиме реального времени. С их помощью Вы сможете обнаруживать аномалии и сбои в работе устройств хранения данных.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Мониторинг

Метки:

Bash, iostat, linux, proc, vmstat

Больше похожих постов

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики