Найти в Дзене
Игорь Сотников

Linux. Мониторинг HDD.Часть 3.

В данной статье мы разберем мониторинг жестких дисков в системах Linux. Здесь все намного сложнее, чем с мониторингом CPU или немного запутанным мониторингом RAM. Можно сказать, что встроенные средства\утилиты в Операционную систему не подходят или малоинформативные. С другой стороны, очень часто HDD являются узким горлышком в производительности, т.к Оперативная память и процессоры в этом плане ушли достаточно далеко, а из SAS дисков извлечь, что то большее очень сложно. Для начала посмотрим, что показывает стандартный инструмент vmstat. Тут мы можем увидеть 2 параметра bi (blocks in) и bo (blocks out). Т.е сколько мы блоков считали в секунду и сколько блоков мы записали в секунду. Надо при этому учитывать, что размер блока у нас зависит от установленной файловой системы. Поэтому здесь не идет речь о каких-то реальных данных и счет идет в блоках в секунду. Мы можем запустить утилиту top и посмотреть параметр wa – это сколько процессор ждет отклика от дисковой подсистемы. Тоже можно ска

В данной статье мы разберем мониторинг жестких дисков в системах Linux. Здесь все намного сложнее, чем с мониторингом CPU или немного запутанным мониторингом RAM. Можно сказать, что встроенные средства\утилиты в Операционную систему не подходят или малоинформативные. С другой стороны, очень часто HDD являются узким горлышком в производительности, т.к Оперативная память и процессоры в этом плане ушли достаточно далеко, а из SAS дисков извлечь, что то большее очень сложно. Для начала посмотрим, что показывает стандартный инструмент vmstat.

-2

Тут мы можем увидеть 2 параметра bi (blocks in) и bo (blocks out). Т.е сколько мы блоков считали в секунду и сколько блоков мы записали в секунду. Надо при этому учитывать, что размер блока у нас зависит от установленной файловой системы. Поэтому здесь не идет речь о каких-то реальных данных и счет идет в блоках в секунду.

Мы можем запустить утилиту top и посмотреть параметр wa – это сколько процессор ждет отклика от дисковой подсистемы.

-3

Тоже можно сказать очень непрозрачный параметр и как его интерпретировать в данном контексте. Здесь ключом может служить колонка S. Она называется process status. Нажимаем shift+f выбираем данную опцию, нажимаем S и q чтоб вернутся. Можно воспользоваться shift+R что сделает реверсивную сортировку. Тут есть несколько статусов R-running (запущен), S-Sleeping (спит), D-uninterruptable sleep (не прерываемый сон). Вот как раз если будет статус D- то процесс чаще всего ждет ответа от диска, но не обязательно т.к процесс может ждать ответа от памяти.

-4

Посмотрим теперь в другой инструмент iotop.

-5

Данный инструмент в стили утилиты предыдущей, но все говорит о подсистеме ввода\вывода. Интерфейс немного не понятный: Сверху есть итоговой Disk read и Disk Write. И есть текущий Actual все измеряется в B\s. Total показывает пропускную способность между процессором и ядром операционной системы, подсистемой ввода вывода. Т.е это как наша система со всеми запущенными программами обращается к системе ввода\вывода. А Actual – это как система ввода\вывода обращается к железу. В Total могут быть операции записи кэша поэтому цифры Total и Actual могут отличатся.

Первая колонка TID – это ID потока. Можно запускать команду ps и еще в ней отлавливать TIDы вот эти самые. Сопоставить с PID и найти какой процесс грузит подсистему ввода\вывода. PRIO – это приоритет, у утилиты TOP там тоже есть NI. Здесь есть be или rt. Через nice мы могли задавать приоритет процессу, а есть утилита ionice с помощью которой можно задавать приоритет процессу ввода \вывода. Для приоритета be, он ранжируется от 0 до 7, так же, как и с обычным nice чем ниже число, тем выше приоритет. Если приоритет одинаковый, то в таком случае процессы обслуживаются по принципу Round Robin. Есть приоритет rt - это высокий приоритет и процессы с таким приоритетом получают в первую очередь доступ к диску. С цифрами в данном случае аналогично.

Колонка User – тут все понятно, от кого запущен thread.

Disk read и Disk write - тут тоже все понятно.

Swapin – это показатель на сколько данным процессом мы используем swap.

IO колонка – это средний процесс, в % какое количество мы от общей подсистемы данным процессом затрачиваем.

Таким образом с помощью iotop можно достаточно хорошо делать debug системы и смотреть, что грузит дисковую подсистему.

Если у кого есть желание сказать спасибо за канал или статьи :

QIWI: KNEYE561

Юmoney ( ЯД ) 41001606289345

#ubuntu #Centos #open source #системное администрирование