Как я могу контролировать диск io?

Использовать find сделать это:

find . -name '--help' -delete

И это - хороший метод, потому что, если у Вас есть более затем несколько файлов как это, что можно удалить Вас, может получить список предварительного просмотра файлов просто рабочей находкой без -delete опция сначала, и затем если список файлов выглядит хорошим просто, выполняет его снова с -delete.

На самом деле, Вы предотвращение rm в пользу find (особенно с предварительным просмотром сначала), хорошая привычка, которая поможет Вам избежать ошибок с rm * это неизбежно укусит Вас однажды.

Обратите внимание, тем не менее, что находка рекурсивно вызовет через все Ваши подкаталоги, таким образом, Вы могли бы хотеть выполнить ее с ограничением глубины подкаталога как это:

find . -maxdepth 1 -name '--help' -delete

который ограничивает находку текущим каталогом.

276
08.11.2012, 21:14
9 ответов

Для диска ввод-вывод, отклоняющийся существует несколько опций. Мой любимый sar команда от sysstat. По умолчанию это дает вывод как это:

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

%iowait потраченное ожидание времени на вводе-выводе. Используя пакет Debian, необходимо включить коллектор статистики через /etc/default/sysstat файл конфигурации после установки пакета.

Для наблюдения текущего использования, вспыхнувшего устройством, можно использовать iostat команда, также от sysstat пакета:

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

Некоторые другие опции, которые могут показать использование диска в отклоняющихся графиках, являются munin и кактусами.

237
27.01.2020, 19:26
  • 1
    Munin или Кактусы больше, что я ищу. Спасибо за указатели. –  camomileCase 09.11.2012, 06:00
  • 2
    , что %iowait только показывает время, когда ядро не имело ничего иного, чтобы сделать, но ожидать IO. На 100%-м зависящем от ЦП сервере это будет нулем независимо, сколько IO он делает. –  Jürgen Strobel 28.04.2014, 17:19
  • 3
    iostat-x dm-0 | grep Устройство; iostat-xd 2-y dm-0 | grep dm-0 –  Juan Medina 17.04.2018, 22:02

Мне нравится dstat. Это может показать общие количества и статистику на диск и даже md-устройства (RAID), также может использовать цвета для лучшего обзора:

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -t для меток времени
  • -d для дисковой статистики
  • -D указывать точные устройства для создания отчетов
  • 60 составлять в среднем более чем 60 секунд. Дисплей обновляется каждую секунду, но только однажды в 60 секунд новая строка будет запущена.

  • не используемый в этом примере, но -c может сообщить ожидают процент IO, который в большинстве случаев связан с ЦП, ожидающим данных из дисков.

Это доступно для большинства дистрибутивов Linux, но иногда должно устанавливаться из репозиториев.

96
27.01.2020, 19:26

Взгляните на iotop.

Или iodump, если это больше снижается на Ваш образ мыслей.

Примечание: Это требует, по крайней мере, чтобы ядро 2.6.20 работало.

109
27.01.2020, 19:26
  • 1
    Это не просто Linux только, но также и требует более нового (или исправленный) ядро. –  jordanm 08.11.2012, 20:45
  • 2
    Они выглядят хорошими для обнаружения, что продолжается прямо сейчас, но я ищу больший контроль изображения. –  camomileCase 09.11.2012, 06:01
  • 3
    @camomileCase - Вы не указывали это в своем вопросе... –  tink 17.06.2016, 13:16

Контроль Диска Io может быть сделан несколькими инструментами как следующее.

  1. Iostat
  2. Iozone
  3. SAR
  4. vmstat

Также некоторые важные понятия операционной системы очень необходимы для понимания их.. читайте IO Linux завершают учебное руководство

8
27.01.2020, 19:26
  • 1
    iozone для тестирования, не контроля: "Iozone является инструментом сравнительного теста файловой системы. Сравнительный тест генерирует и измеряет множество операций файла". –  Andrew Beals 17.02.2016, 00:28

Только из файлов на Вашем компьютере (принимающий недавнее ядро) можно спросить /sys/block/sda/stat или /proc/diskstats. Будет требоваться некоторый перевод, как бы то ни было. Но это хорошо для быстрой и грязной проверки.

50
27.01.2020, 19:26
  • 1
    /sys/block/sda/stat документируется в https://www.kernel.org/doc/Documentation/block/stat.txt –  ignis 15.09.2013, 00:19
  • 2
    находки /proc/diskstats документируется в kernel.org/doc/Documentation/iostats.txt –  Rikard Söderström 13.01.2017, 02:01
  • 3
    Большое преимущество для этого ответа состоит в том, что никакие инструменты не должны быть установлены. Это просто там. (Потенциально :-) –  Ben Aveling 03.02.2017, 07:36
  • 4
    , например, эхо "чтение io галочки секторов слияния пишут, что секторы слияний io отмечают ioticks в полете timeinqueu"; кошка/sys/block/vda/vda1/stat; сон 10; кошка/sys/block/vda/vda1/stat –  Ben Aveling 06.02.2017, 02:07

Лучшая вещь сделать, если Вы хотите видеть производительность на длительном периоде, состоит в том, чтобы использовать Centreon, который является, мощные инструменты основываются на Nagios. Centreon делают Вас способными контролировать путем рисования графиков действий ресурса и партии других вещей.

1
27.01.2020, 19:26

На моем достаточно современном ноутбуке Arch /tmp/.X11-unix/ находится каталог с одной записью: X0 , сокет Unix-домена .

Сервер X11 (usuall Xorg в наши дни) взаимодействует с клиентами, такими как xterm , firefox и т.д., посредством какого-то надежного потока байтов. Доменный сокет Unix, вероятно, немного безопаснее, чем открытый миру TCP-сокет, и, вероятно, немного быстрее, так как ядро делает это все, и не должно полагаться на ethernet или беспроводную карту.

Мой X11 сервер отображается следующим образом:

bediger    294   293  0 Apr09 tty1     01:23:26 /usr/lib/xorg-server/Xorg -nolisten tcp :0 vt1 -auth /tmp/serverauth.aK3Lrv5hMV

«-nolisten tcp» не позволяет ему открыть TCP-порт 6000 для связи.

Команда lsof -U позволяет определить, какие процессы используют сокеты домена Unix. Я вижу Xorg подключенным к /tmp/.X11-unix/X0 .

-121--14719-

Согласно руководству пользователя zsh , псевдонимы должны быть определены в ~/.zshrc :

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

Он также имеет наконечник для поддержания вашего ~/.zshrc в чистоте:

Я склонен использовать только псевдонимы в интерактивных оболочках, поэтому я определяю их от .zshrc, но вы можете использовать .zshenv, если вы используете псевдонимы больше широко. На самом деле, чтобы сохранить мой .zshrc аккуратно я сохраняю все псевдонимы в отдельный файл с именем .aliasrc и в .zshrc у меня есть:

, если [[-r ~/.aliasrc]]; тогда
. ~/.aliasrc
fi

, который проверяет, есть ли читаемый файл ~/.aliasrc, и есть ли, он запускается точно так же, пути выполняются обычные файлы запуска.

Таким образом, может потребоваться создать файл с именем ~/.aliasrc и его исходный код (. означает источник ) из ~/.zshrc .

Тот же источник предполагает, что переменные окружающей среды должны быть в ~/.zshenv :

Самое простое место для размещения в .zshenv --- отсюда и название. Переменные среды будут передаваться любым программам, выполняемым из оболочки, поэтому их может быть достаточно определить в .zlogin или .zprofile: тем не менее, любая оболочка, запущенная для вас неинтерактивно, не будет запускать их, и есть другие возможные проблемы, если вы используете систему оконной обработки, которая запускается оболочкой, отличной от zsh, или которая вообще не запускает файл запуска оболочки - мне пришлось изменить свою, чтобы сделать это. Так что .zshenv - самое безопасное место; определение переменных среды занимает недолго. Другие люди, без сомнения, дадут вам совершенно противоречивые взгляды, но это люди для вас.

-121--128785-

Еще один отличный инструмент для быстрого обзора, откуда поступает нагрузка, - вверху

Он может показать вам обзор всех ресурсов (ЦП, память/замена, сеть и дисковый ввод-вывод) или вы можете перейти к одному ресурсу и сортировать процессы по их расходу.

7
27.01.2020, 19:26

Другой вариант - использовать: sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

Эта программа сообщит вам, сколько процесс записал на диск и прочитал с диска с момента запуска iotop.

37
27.01.2020, 19:26

Почему бы не попробовать nmon . Он делает диски и сеть с процессами. Первоначально для AIX, но уже несколько лет портирован на Linux.

8
27.01.2020, 19:26

Теги

Похожие вопросы