Я могу наблюдать ход 'синхронизирующей' операции?

Инструмент, который Вы хотите для этого, является cpio (1). Это возьмет список файлов от stdin и произведет архив. Если необходимо произвести архив в формате tar, используйте -H tar опция.

107
15.09.2012, 05:09
4 ответа

Взгляд на /proc/meminfo покажет Dirty число, уменьшающееся со временем как все данные, буферизует; часть его может проникнуть в Writeback также. Это будет сводкой против всех устройств, но в случаях, где одно устройство в системе намного медленнее, чем остальные, Вы будете обычно заканчивать, где все в той очереди связано с ним. Вы, вероятно, найдете Dirty число, большое, когда Вы запускаете и sync концы в то же время это приближается 0. Попробуйте это для получения интерактивного дисплея:

watch -d grep -e Dirty: -e Writeback: /proc/meminfo

С обычными дисками I может обычно игнорировать Writeback, но я не уверен, включается ли это чаще в пути передачи USB. Если это просто возвращается вверх и вниз без ясной тенденции к нему, можно, вероятно, просто посмотреть на Dirty число.

171
27.01.2020, 19:29
  • 1
    В моей системе обратная запись остается в нескольких megs до правильной около конца, когда Грязный пусто, в которой точке это начинает понижаться также. –  mattdm 08.10.2012, 05:02

Можно посмотреть на /sys/block/<device>/stat файл для соответствующего устройства, в то время как Вы синхронизируете. 9-й столбец укажет на количество запросов в полете на устройстве, которое должно понизиться для обнуления, когда синхронизация сделана.
Не знайте о способе перевести это во многие байты, но он должен дать Вам общее представление о том, сколько "материала" все еще находится на рассмотрении.

Посмотрите файл stat.txt в документации ядра некоторое время больше информации. (Существует также inflight файл в том каталоге в моей системе, которая похожа на него, мог содержать чтение и записать запросы в полете, но я не могу найти документы для этого.)

24
27.01.2020, 19:29
  • 1
    Только для удобной ссылки, комбинируя идею из другого ответа: watch -t -n1 'awk "{ print \$9 }" /sys/block/sdd/stat' –  mattdm 08.10.2012, 04:59
  • 2
    Для моей палки usb это имеет тенденцию колебаться приблизительно 150 всюду по продолжительности операции копии и sync впоследствии. Это действительно переходит в 0, но только в самом конце. Это делает другой ответ более полезным для того, чтобы нетерпеливо наблюдать прогресс. –  mattdm 08.10.2012, 05:01
  • 3
    (Даже при том, что в теории мне нравится смотреть на просто соответствующее устройство, а не информацию в масштабе всей системы), –  mattdm 08.10.2012, 05:03
  • 4
    Существует ли способ заставить сумму записанных байтов (синхронизировавший, сброшенный не в полете) или кэшируемый быть записанной для управления? Если бы у меня был размер кэша записи на диск, то я мог бы использовать это с du вычислить реальные данные, которые синхронизируются на диске. –  unfa 26.04.2017, 13:06

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

Для этого просто запустите эту команду:

sync & watch -n 1 grep -e Dirty: /proc/meminfo

Это вызовет sync в фоновом режиме, в то время как выполнение watch впереди. Когда команда sync завершится (примерно, когда размер грязного блока достигнет 0), вы получите вывод, который выглядит следующим образом:

1]  + 27260 done        sync

Это означает, что команда завершена, и вы можете убейте команду watch с помощью Ctrl+C.

16
27.01.2020, 19:29

Вы можете просмотреть текущий трафик ввода-вывода блочного устройства с помощью nmon , как в:

NMON=ld nmon -s1

(предварительно выбирает отображение графика нагрузки и графика диска с периодом обновления 1 секунда. Это также можно установить, запустив nmonбез параметров, а затем нажав l, d, -для переключения графиков и уменьшения время обновления по умолчанию 2 с.. +, конечно, увеличит задержку обновления.)

1
01.05.2021, 11:07

Теги

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