Операции ввода-вывода — процессы в вычислительной технике, которые связаны с передачей данных между компьютером и внешними устройствами или между различными частями самого компьютера. Системным администраторам важно собирать статистику по этим процессам, поскольку она позволяет:
- планировать распределение ресурсов;
- выявлять узкие места, влияющие на общую производительность ПК;
- прогнозировать потребности в хранении и обработке данных в операционной системе.
В этой статье мы покажем Вам три скрипта Bash для мониторинга операций ввода-вывода в реальном времени в Linux.
Содержание:
- Чтение данных из файла /proc/diskstats
- Использование утилиты iostat для сбора статистики по операциям ввода-вывода
- Использование функционала vmstat в скрипте Bash
- Выводы
Чтение данных из файла /proc/diskstats
Ядро Linux предоставляет виртуальный файл /proc/diskstats, который содержит статистику операций ввода-вывода для всех блочных устройств операционной системы.
Для сбора информации из этого текстового документа в режиме реального времени напишем следующий скрипт:
Важно: в этом сценарии переменная DEVICE содержит название устройства хранения, которое будет отслеживаться в процессе мониторинга. Задайте для нее собственное значение.
Этот скрипт Bash будет выводить на экран и обновлять каждые 5 секунд следующую информацию об операциях ввода-вывода:
- Reads Completed — количество завершенных операций чтения;
- Reads Merged — количество операций чтения, объединенных с текущими операциями ввода-вывода;
- Sectors Read — количество прочитанных секторов (обычно сектор составляет 512 байт);
- Time Spent Reading — время, затраченное на чтение (в миллисекундах);
- Writes Completed — количество завершенных операций записи;
- Writes Merged — количество операций записи, объединенных с текущими операциями ввода-вывода;
- Sectors Written — количество записанных секторов;
- Time Spent Writing — время, затраченное на запись (в миллисекундах).
Чтобы запустить скрипт, выполним в терминале:
Читайте также: Команда procinfo — примеры использования в Linux.
Использование утилиты iostat для сбора статистики по операциям ввода-вывода
Вы можете модернизировать предыдущий скрипт, добавив в него функционал команды iostat. Утилита iostat — это инструмент командной строки в Linux, используемый для мониторинга и составления отчетов об активности ЦП, дискового ввода-вывода и блочных устройств.
Таким образом, код сценария Bash для мониторинга операций чтения и записи на устройстве хранения будет таким:
В дополнение к предыдущим данным, Вы получите следующую статистику об операциях ввода-вывода:
- tps — количество операций ввода-вывода в секунду;
- kB_read/s — объем информации в килобайтах, прочитанных за секунду;
- kB_wrtn/s — объем данных в килобайтах, записанных в секунду;
- kB_read — общее количество прочитанных данных в килобайтах;
- kB_wrtn — общее количество записанной информацию в килобайтах;
- kB_dscd/s — скорость освобождения блоков данных на устройстве в килобайтах в секунду;
- kB_dscd — количество освобожденных блоков на диске в результате выполнения операции
trimв килобайтах.
Читайте также: Как установить и использовать iostat в Linux.
Использование функционала vmstat в скрипте Bash
Утилита vmstat — инструмент командной строки Linux, предназначенный для мониторинга производительности операционной системы. Эта команда позволяет получить детальную и сводную информацию об использовании ресурсов оперативной памяти, центрального процессора, загруженности жесткого диска, операциях ввода-вывода и других показателях.
На основе данных об операциях дискового ввода-вывода, которые собирает утилита vmstat, можно рассчитать изменения в производительности устройства хранения за определенный промежуток времени. Если собрать информацию в начале и в конце заданного интервала, можно узнать разницу в количестве:
- выполненных чтений и записей;
- прочитанных или записанных секторов;
- времени, затраченном на чтение или запись между последовательными измерениями.
Код скрипта выглядит следующим образом:
Читайте также: Команда vmstat в Linux с примерами.
Важно: в сценарии инициализируется переменная INTERVAL со значением 5 секунд. Она задает интервал между каждым обновлением данных. Также в файл current_stats.txt временно сохраняется статистика дискового ввода-вывода, полученная в результате выполнения команды vmstat -d. Записанные данные извлекаются и обрабатываются, после чего содержимое current_stats.txt перезаписывается новой информацией в последующих итерациях скрипта Bash.
Для запуска сценария Bash выполните следующую команду:
Выводы
Мы показали три полезных скрипта Bash для мониторинга операций ввода-вывода в режиме реального времени. С их помощью Вы сможете обнаруживать аномалии и сбои в работе устройств хранения данных.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.





























