Мы можем использовать команду htop, чтобы увидеть список всех запущенных процессов нашего Linux-сервера. Но что, если мы хотим отслеживать, сколько пропускной способности диска потребляет каждый из этих процессов? Что ж, мы можем использовать iotop.
iotop - это интерактивный инструмент для мониторинга ввода-вывода в Linux, как и htop. С помощью iotop вы можете легко отслеживать использование полосы пропускания чтения и записи на диск для каждого запуска, обрабатываемого в Linux.
В этой статье я покажу вам, как установить iotop в популярных дистрибутивах Linux и как использовать iotop для мониторинга использования полосы пропускания чтения и записи на диск для каждого запущенного процесса. Я буду использовать Ubuntu 18.04 LTS для демонстрации, но те же команды должны работать в любых современных дистрибутивах Linux. Итак, приступим.
Установка iotop в Ubuntu:
iotop доступен в официальном репозитории пакетов Ubuntu. Итак, вы можете легко скачать iotop с помощью диспетчера пакетов APT.
Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:
$ sudo подходящее обновление
Теперь установите iotop с помощью следующей команды:
$ sudo apt install iotop
iotop должен быть установлен.
Теперь проверьте, работает ли iotop, с помощью следующей команды:
$ iotop --versioniotop работает, как вы можете видеть.
Установка iotop на CentOS 7:
iotop доступен в официальном репозитории пакетов CentOS 7. Вы можете легко установить его с помощью диспетчера пакетов YUM следующим образом:
$ sudo yum install iotop -y
Базовое использование iotop:
Чтобы отслеживать использование диска каждым запущенным процессом с помощью iotop, запустите iotop следующим образом:
$ sudo iotop
Как видите, открывается интерактивное окно iotop. Здесь вы можете увидеть, какой процесс использует диск.
Как вы можете видеть на скриншоте ниже, в верхнем левом углу отображается общая скорость чтения / пропускная способность диска. Таким же образом в правом верхнем углу отображается общая скорость записи / пропускная способность диска.
Как видите, iotop отображает столбцы для,
- ID потока (TID).
- Класс / уровень приоритета ввода / вывода (ПРИО).
- владелец ветки с TID (ПОЛЬЗОВАТЕЛЬ).
- чтение с диска в секунду (ДИСК ЧИТАТЬ).
- запись на диск в секунду (ЗАПИСЬ НА ДИСК).
- процент времени, проведенного потоком при замене (СВОПИН).
- процент времени, проведенного потоком в ожидании ввода-вывода (IO>).
- команда, которую выполняет поток (КОМАНДА).
В большинстве случаев идентификатор потока (TID) эквивалентен идентификатору процесса (PID).
Отображение процессов, выполняющих только операции ввода-вывода:
По умолчанию iotop показывает все запущенные процессы независимо от того, выполняют ли они операции ввода-вывода или нет. Итак, список очень длинный. Сложнее найти нужные нам процессы и контролировать их.
К счастью, iotop позволяет отображать только процессы, выполняющие операции ввода-вывода. Для этого вы можете использовать -о или же -Только вариант iotop.
Чтобы отобразить только процессы, выполняющие операции ввода-вывода, запустите iotop следующим образом:
$ sudo iotop -oИли же
$ sudo iotop - только
Как видите, процесс с TID 1345 и 1957 прямо сейчас выполняет операции ввода-вывода.
Это команда, которую я запускаю для моделирования операций ввода-вывода в этой статье.
$ dd if = / dev / urandom of = iotest.img bs = 1M count = 1000
ПРИМЕЧАНИЕ: Если вы еще не запустили iotop с -о или же -Только вариант, вы все равно можете переключиться в этот режим, нажав кнопку о ключ на клавиатуре. Вы можете переключаться между этими двумя режимами iotop, используя о ключ.
Отображение общего использования ввода-вывода на процесс:
iotop также позволяет отслеживать, сколько всего операций чтения и записи на диск сделал каждый процесс после запуска iotop. Для этого вам нужно использовать -а или же -накопленный вариант. Вы также можете использовать его с -о или же -Только вариант также.
Например,
$ sudo iotop -aoКак видите, отображается общее количество операций чтения и записи на диск для каждого процесса.
Отображение PID вместо TID:
Как я уже говорил ранее, идентификатор потока (TID) в большинстве случаев совпадает с идентификатором процесса (PID). Вы можете использовать их как взаимозаменяемые. Но если вы действительно хотите быть уверены, что работаете именно с идентификатором процесса (PID), тогда iotop имеет -п или же -процессы параметр, который можно использовать для изменения столбца TID по умолчанию на столбец PID.
Чтобы отобразить столбец PID вместо столбца TID, запустите iotop следующим образом:
$ sudo iotop -PИли же
$ sudo iotop --processes
Как видите, столбец TID заменен столбцом PID.
Фильтрация процессов iotop:
Вы можете фильтровать процессы iotop на основе идентификатора процесса (PID), идентификатора потока (TID) и обработанного владельца (USER).
Например, если вы хотите отслеживать дисковый ввод-вывод процессов только с PID 2024 и 2035, вы должны запустить iotop следующим образом:
$ sudo iotop -P -p 2024 -p 2035
Как видите, отслеживаются только процессы с PID 2024 и 2035.
Если вы хотите отслеживать дисковый ввод-вывод потоков только с TID 2024 и 2035, вы должны запустить iotop следующим образом:
$ sudo iotop -P -p 2024 -p 2035Опять же, скажем, вы хотите контролировать дисковый ввод-вывод процессов, запущенных от имени пользователя Шовон. Для этого запустите iotop следующим образом:
$ sudo iotop -P -u shovon
Как видите, только процессы, запущенные от имени пользователя Шовон отображается.
Если вы хотите отслеживать сразу нескольких пользователей, вы тоже можете это сделать.
Например, для мониторинга дискового ввода-вывода всех процессов, которые пользователи Шовон а также Лили запущены, запустите iotop следующим образом:
$ sudo iotop -P -u shovon -u лилияИтак, вот как вы используете iotop для мониторинга дискового ввода-вывода в Linux. Спасибо, что прочитали эту статью.