Диск проверки с практическими рекомендациями использование ввода-вывода для каждого процесса

Могло бы стоить посмотреть на этот подобный вопрос с 5 или шестью ответами. Я подозреваю, что можно проигнорировать тот о 'помещении его в сушилке'.

46
задан 13 April 2017 в 15:14
5 ответов

Если Вам повезло поймать следующий пиковый период использования, можно изучить статистику ввода-вывода для каждого процесса в интерактивном режиме, с помощью iotop.

49
ответ дан 28 November 2019 в 19:39

Использовать btrace. Это просто в использовании, например btrace /dev/sda. Если команда не доступна, это, вероятно, доступно в пакете blktrace.

Править: Так как debugfs не включен в ядре, Вы могли бы попробовать date >>/tmp/wtf && ps -eo "cmd,pid,min_flt,maj_flt" >>/tmp/wtf или подобный. Вход отсутствий страницы не, конечно, во все равно, чем использование btrace, но если Вы удачливы, это МОЖЕТ дать Вам некоторую подсказку о большей части диска голодные процессы. Я просто примерил тот из своих самых интенсивно использующих средства ввода-вывода серверов, и список включал процессы, которые я знаю, используют много ввода-вывода.

5
ответ дан 28 November 2019 в 19:39

Ничто не сравнится с постоянным мониторингом, вы просто не можете получить обратно важные данные после события ...

Есть несколько вещей, которые вы могли бы сделать однако проверьте, чтобы выявить или исключить - / proc - ваш друг.

sort -n -k 10 /proc/diskstats
sort -n -k 11 /proc/diskstats

Поля 10, 11 - это накопленные записанные сектора и суммарное время записи (мс). Это покажет ваши горячие разделы файловой системы.

cut -d" " -f 1,2,42 /proc/*/stat | sort -n -k +3

Это поля PID, command и кумулятивные тики ожидания ввода-вывода. Это покажет ваши горячие процессы, но только , если они все еще работают . (Вероятно, вы захотите проигнорировать потоки журналирования файловой системы.)

Полезность вышеизложенного зависит от времени безотказной работы, природы ваших длительных процессов и того, как используются ваши файловые системы.

Предостережения: не относится к предварительным версиям. -2.6 ядра, проверьте документацию, если не уверены.

10
ответ дан 28 November 2019 в 19:39

Вы можно использовать pidstat для печати совокупной статистики io для каждого процесса каждые 20 секунд с помощью этой команды:

# pidstat -dl 20

Каждая строка будет иметь следующие столбцы:

  • PID - идентификатор процесса
  • kB_rd / s - количество килобайт задача вызвала чтение с диска в секунду.
  • kB_wr / s - Количество килобайт, которое задача вызвала или должна вызвать запись на диск в секунду.
  • kB_ccwr / s - Количество килобайт, запись которых на диск была отменена задачей. Это может произойти, когда задача усекает грязный кэш страниц. В этом случае, некоторые операции ввода-вывода, для которых была учтена другая задача, не будут выполняться.
  • Команда - Имя команды задачи.

Вывод выглядит следующим образом:

05:57:12 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:32 PM       202      0.00      2.40      0.00  jbd2/sda1-8
05:57:32 PM      3000      0.00      0.20      0.00  kdeinit4: plasma-desktop [kdeinit]              

05:57:32 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:52 PM       202      0.00      0.80      0.00  jbd2/sda1-8
05:57:52 PM       411      0.00      1.20      0.00  jbd2/sda3-8
05:57:52 PM      2791      0.00     37.80      1.00  kdeinit4: kdeinit4 Running...                   
05:57:52 PM      5156      0.00      0.80      0.00  /usr/lib64/chromium/chromium --password-store=kwallet --enable-threaded-compositing 
05:57:52 PM      8651     98.20      0.00      0.00  bash 

05:57:52 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:58:12 PM       202      0.00      0.20      0.00  jbd2/sda1-8
05:58:12 PM      3000      0.00      0.80      0.00  kdeinit4: plasma-desktop [kdeinit]              
30
ответ дан 28 November 2019 в 19:39

Используйте поверх . ( http://www.atoptool.nl/ )

Записать данные в сжатый файл, который поверх может позже прочитать в интерактивном стиле. Снимайте показания (дельта) каждые 10 секунд. сделайте это 1080 раз (3 часа; поэтому, если вы забудете об этом, выходной файл не выйдет за пределы диска):

$ atop -a -w historical_everything.atop 10 1080 &

После того, как снова случится плохое:

(даже если он все еще работает в фоновом режиме, он просто добавляется каждые 10 секунд)

% atop -r historical_everything.atop

Поскольку вы сказали ввод-вывод, я бы нажал 3 клавиши: tdD

t - move forward to the next data gathering (10 seconds)
d - show the disk io oriented information per process
D - sort the processes based on disk activity
T - go backwards 1 data point (10 seconds probably)
h - bring up help
b - jump to a time (nearest prior datapoint) - e.g. b12:00 - only jumps forward
1 - display per second instead of delta since last datapiont in the upper half of the display
10
ответ дан 28 November 2019 в 19:39

Теги

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