а вообще жаль что поломали поддержку iotop’а в CentOS’е или Ubuntu 10.x(по крайней мере в дефолтовом ядре). Мегаполезная тулза, а до этой статьи я думал, что ещё и незаменимая..
это не всё. во-первых неплохо было бы оформить всё это в пакеты. и во-вторых как быть с уведомлениями об обновлениях? так у меня плугин для нагиоса висит, к-ый алертит о доступных секурити апдейтах, а если руками ставить ядро, то подписавшись на рассылку можно забыть о нужном обновлении. иными словами, надо ещё изобретать другой плугин, или вы поделитесь:)?
> это не всё. > во-первых неплохо было бы оформить всё это в пакеты. > и во-вторых как быть с уведомлениями об обновлениях? так у меня плугин > для нагиоса висит, к-ый алертит о доступных секурити апдейтах,
Надо сначала определиться, вам Терафлопы или спокойно спать? Одной из стадий терафлопизации 🙂 — это минимизация всего что только есть. (в разумных пределах конечно, хотя, зависит от выделенного времени). Для безопасности это тоже полезно (тем более нафига вам апдейты софта который не используется.)
> а если руками ставить ядро, то подписавшись на рассылку можно забыть > о нужном обновлении.
Ядро дистрибное выкидывается. Чтоб действительно обновления не мешались.
> иными словами, надо ещё изобретать другой плугин, или вы поделитесь:)?
Ну за последние два года (дальше не помню), из-за замены ядра, проблем с юзерспейсным софтом не было ваабще.
Кроме только vmware, и то модули, которая немного не успевает за ядром. Пару раз глюкал nvidia.
И это учитывая, что у меня в основном RC версии, вот щас 2.6.37-rc3-git2
Источник
Описание iostat Linux
Утилита iostat позволяет проанализировать загруженность системы. Она выводит основные параметры ввода и вывода данных на диск, скорость записи и чтения данных, а также количество записанных или прочитанных данных. Кроме того, утилита выводит параметры загруженности процессора. Её можно использовать для оптимизации работы системы.
В этой статье мы рассмотрим как пользоваться iostat и что означают основные колонки в её выводе.
Описание iostat Linux
Синтаксис iostat очень простой. Вам достаточно выполнить:
$ iostat опции устройство интервал
Параметры устройство и интервал необязательные. Первый указывает по какому устройству показывать статистику, а второй, с каким интервалом обновлять данные. Давайте сначала рассмотрим опции программы, которые могут вам пригодится:
-с — отобразить только информацию об использовании процессора;
-d — отобразить только информацию об использовании устройств;
-h — выводить данные в отчёте в удобном для чтения формате;
-k — выводить статистику в килобайтах;
-m — выводить статистику в мегабайтах;
-o JSON — выводить статистику в формате JSON;
-p — вывести статистику по устройству и всех его разделам;
-x — вывести расширенную статистику;
-y — отображать статистику с момента запуска утилиты, а не системы;
-z — спрятать информацию о дисках, у которых нет активности.
Использование iostat в Linux
Самый простой пример использования утилиты, это запустить её без параметров. Она выведет отчёт с со средней статистикой с момента включения системы до момента запуска программы:
В первой части отчёта находится информация о загруженности процессора. Тут есть такие колонки:
%user — процент использования процессора программами, запущенными на уровне пользователя;
%nice — процент использования процессора программами запущенными тоже в пространстве пользователя, но только с изменённым приоритетом;
%system — процент использования процессора ядром;
%iowait — процент времени затраченного на ожидание завершения операций ввода/вывода;
%steal — процент простоя виртуального процессора, пока гипервизор отдаёт мощность другому виртуальному процессору;
%idle — процент времени пока процессор не занят ничем.
Если значение параметра %iowait слишком большое, то это может означать, что у вас проблема с производительностью диска и слишком много времени тратится на ожидание завершения ввода/вывода. Для устройств ввода/вывода тоже отображается ряд колонок с информацией. Разберемся что они означают:
tps — означает количество запросов на чтение или запись к устройству в секунду;
KB_read/s, MB_read/s — количество килобайт или мегабайт, прочитанных с устройства за секунду;
KB_wrtn/s, MB_wrtn/s — количество килобайт или мегабайт записанных на устройство в секунду;
KB_dscd/s, MB_dscd/s — скорость освобождения блоков данных на устройстве, килобайт или мегабайт в секунду;
KB_read, MB_read — общее количество прочитанных данных с диска с момента загрузки системы;
KB_wrtn, MB_wrtn — количество записанных данных с момента загрузки системы;
KB_dscd, MB_dscd — количество освобождённых блоков на диске в результате выполнения операции trim в килобайтах или мегабайтах.
С чтением и записью, я думаю, что всё понятно. Освобождение блоков с данными с помощью операции trim или discard актуально для SSD дисков. Этой операцией файловая система сообщает какие блоки больше хранить физически не нужно и можно использовать для других целей. Утилита отображает с какой скоростью эти блоки освобождаются, а также сколько блоков или мегабайт данных было освобождено. Рассмотрим ещё несколько примеров. Для просмотра данных в удобном формате выполните:
Чтобы посмотреть данные по нужному устройству просто укажите это устройство:
sudo iostat /dev/nvme0n1
Можно посмотреть статистику по каждому разделу устройства, тогда надо воспользоваться опцией -p:
sudo iostat -p /dev/nvme0n1
Чтобы утилита автоматически обновляла данные каждую секунду просто добавьте интервал. Например:
sudo iostat -p /dev/nvme0n1 1
Если вы не хотите чтобы утилита суммировала все данные с момента запуска операционной системы, то можно использовать опцию -y. Но работает она только если задан интервал:
sudo iostat -y -p /dev/nvme0n1 1
Выводы
В этой статье была рассмотрена команда iostat Linux. Она позволяет понять почему зависает ваша система и действительно ли причина этому — жёсткий диск. Мы рассмотрели далеко не все опции утилиты и далеко не все колонки из возможного её вывода. Более подробную информацию вы можете найти выполнив:
Самая свежая и достоверная информация, как правило, заполняется разработчиками и находится на man — страницах.
Источник
Что грузит диск linux
Статистику по операциям ввода-вывода для дисков можно посмотреть при помощи команд iostat и pidstat. Это поможет понять какие процессы создают набольшую нагрузку на диск в Linux.
Для работы с этими утилитами придется установить дополнительные пакеты. Инструкция по установка: 1) Debian\Ubuntu:
Команда iostat
Просмотр общей статистики ввода-вывода по дискам можно осуществить командой:
Пример вывода команды:
Важными столбцами являются:
r/s Число операций чтения с диска в секунду
w/s Число операций записи на диск в секунду
rkB/s Число прочитанных килобайт за секунду
wkB/s Число записанных килобайт за секунду
Команда pidstat
Просмотр статистики в разрезе процессов можно посмотреть в интерактивном режиме при помощи команды:
Пример вывода команды:
Важными столбцами являются:
UID Идентификатор пользователя, от имени которого работает процесс
PID Идентификатор процесса
kB_rd/s Скорость в килобайтах в секунду, с которой процесс читает с диска
kB_wr/s Скорость в килобайтах в секунду, с которой процесс записывает на диск
Источник
Кунг-фу стиля Linux: мониторинг дисковой подсистемы
Если, работая в Linux, нужно быстро взглянуть на сведения о работающих процессах — можно воспользоваться командой top , или — что немного лучше — командой htop . А как быть, если надо получить данные о состоянии дисковой подсистемы? Решить эту задачу помогут специализированные инструменты, некоторые из которых распространены далеко не так широко, как top .
Утилита iotop
Утилита iotop очень сильно похожа на top . Она выводит сведения об общем и текущем количестве операций обращения к диску для файловой системы. Кроме того, она сообщает о том, что именно интенсивнее всего нагружает диск. Экран iotop , на первый взгляд, переполнен информацией.
Вот совет по работе с этой утилитой. Если взглянуть на нижнюю часть экрана — там можно найти некоторые команды, вызываемые нажатиями на клавиши клавиатуры. Например, клавиша O скрывает (или отображает) все неактивные процессы. Это позволяет немного улучшить внешний вид сведений, выводимых iotop .
Сведения об использовании дисковой подсистемы активными процессами
Того же эффекта можно добиться, запустив iotop с ключом -o . Обратите внимание на то, что другие клавиатурные команды позволяют, например, выводить сведения о потоках, а не о процессах, менять режим вывода данных, задавать классы и приоритеты ввода-вывода процессов ( ionice ).
Утилита iostat
Если вас больше интересуют данные, относящиеся к самим дискам, а не к процессам или потокам, можете попробовать команду iostat . Она тоже выводит некоторые данные о процессах, но они представлены в обобщённом виде.
Работа с iostat
Эта команда запускается, собирает данные и выводит их, не обновляя в режиме реального времени. Если нужно периодически её перезапускать — можно, при её запуске, указать промежуток времени между получениями новых отчётов, и, что необязательно, общее количество перезапусков. При этом, если нужно, можно воспользоваться ключом командной строки -t для получения сведений о времени.
Правда, это приводит к прокрутке выходных данных программы. Если вы занимаетесь мониторингом дисковой активности, то, возможно, вам лучше подойдёт такой вариант запуска iostat :
Если запустить утилиту с ключом -x — можно получить более подробные сведения о дисках. Флаг -z позволяет отключить вывод сведений об устройствах, на которых нет данных.
Утилита duf
Вы, вероятно, не найдёте в своей системе утилиту duf . Если это так — можете установить её с GitHub. Те же результаты, правда, можно получить, воспользовавшись df и ещё некоторыми командами, но преимущество duf заключается в том, что эта программа представляет данные в удобном для просмотра виде.
При запуске этой утилиты можно воспользоваться опциями командной строки, которые позволяют скрывать устройства, задавать ширину таблиц, выводимых на экране, по-разному сортировать выводимые данные. Ещё можно указать максимальную ширину таблиц, генерируемых программой. Подробности о работе с duf можно узнать, запустив утилиту с ключом —help .
Вывод сведений об открытых файлах с помощью lsof
Если нужно узнать о том, какие именно файлы открыты в системе, сделать это можно с помощью команды lsof . Она выводит подробную информацию, а в работающих системах обычно открыто очень много файлов. Поэтому lsof обычно используют, указывая имя файла, или комбинируя этот приём с grep . Это позволяет узнать сведения только о том, что нужно.
При использовании lsof нужно помнить о том, что шаблоны тут, по умолчанию, не работают. Поэтому следующая команда выведет лишь сведения о директории /home/alw . А вот, например, сведения о процессах, которые открыли какие-нибудь файлы в этой директории, такая команда не выведет.
Для того чтобы это изменить, можно запустить lsof с ключом -d или -D . Ключ, представленный буквой в нижнем регистре, приводит к поиску директорий и файлов на верхнем уровне. Ключ -D выполняет рекурсивный поиск. Эта команда поддерживает и много других опций, которые можно применять, например, для поиска файлов, открытых пользователем с заданным ID, или для поиска по заданному имени команды.
Дополнительный инструмент: atop
Одной из замен команды top является atop . Хотя эта команда и не нацелена исключительно на мониторинг дисковых операций, она даёт сведения о том, как процессы пользуются дисками, и, кроме того, предоставляет некоторые сводные сведения. Обычно после запуска atop в верхней части формируемого ей вывода имеется строка DSK , в которой присутствуют сведения о диске. Эти данные, по мере приближения уровня использования диска к 100%, выделяются красным цветом. Данные, выводимые в нижней части, похожи на те, что даёт команда top .
Для сортировки процессов по уровню использования дисков можно воспользоваться клавишей D . Это — полезный инструмент.
Итоги
Для того чтобы получить сведения о дисках в Linux можно применить десятки различных инструментов. Собственно говоря, нечто подобное справедливо и для решения многих других задач. Если вам интересны подробности о том, что именно выводит htop (похожие данные формируют, кроме того, top и atop ) — взгляните на этот материал.