Способ ускорения cp -a (использование cp -a внутри флэш-накопителя очень медленное)

При использовании флэш-накопителя с постоянной операционной системой случается, что постоянный раздел casper- rw повреждается, если вынуть флэш-накопитель слишком рано после завершения работы операционной системы.

К сожалению, с ubuntustudio-20.04.2 у меня были периоды до одной минуты после нажатия кнопки выключения, когда экран черный, но в разделе casper-rw происходят тяжелые операции записи. Так что очень легко его сломать, слишком рано потянув за палку.

Чтобы оправиться от такой неудачи, я создаю резервный раздел для casper-rw и использую команды (после того, как стал суперпользователем) после правильной установки переменных QUELLE и ZIEL:

time cp -a "$ {QUELLE} / upper" "$ {ZIEL}"

time cp -a "$ {QUELLE} / work" "$ {ZIEL}"

time cp -a "$ {QUELLE} / lost + found "" $ {ZIEL} "

Когда мой скрипт запускается, я вижу

  • очень низкую активность ЦП
  • очень низкое использование ОЗУ
  • htop показывает мне, что cp -a процесс очень долго находится в состоянии D.

Если я понял (пожалуйста, поправьте меня), это означает, что компьютеру приходится очень часто ждать, потому что контроллер USB-накопителя не может обработать такое количество операций чтения и эффективно выполнять операции записи (хотя это устройство USB3 в разъеме USB3!).

Есть ли способ разрешить cp -a использовать большие буферы для ускорения работы, в идеале записывая целые файлы последовательно?

0
задан 29 April 2021 в 20:41

2 ответа

Вы можете использовать -- , чтобы указать конец параметров, например:

$ zip -r my.zip -YDHEmmD9DDD=

zip error: Invalid command arguments (short option 'Y' not supported)

, но

$ zip -r my.zip -- -YDHEmmD9DDD=
updating: -YDHEmmD9DDD=/ (stored 0%)
  adding: -YDHEmmD9DDD=/somefile (stored 0%)
  adding: -YDHEmmD9DDD=/other file (stored 0%)
-121--914899-

Какую версию ubuntu вы пытаетесь установить? Эта ошибка возникает при неправильном создании разделов для установленной ОС. Установите Ubuntu один раз с секционированием по умолчанию и проверьте, существует ли проблема по-прежнему! Если ОС установлена таким образом правильно, возможно, выполняется неправильное разбиение.

Для секционирования по умолчанию на странице «Installation type» выберите первый вариант:

SCREEN SHOT OF Default choice for partitions in installation progress.

-121--914896-

Похоже, что можно значительно ускорить копирование, скопировав каталоги upper , work и lost + found (если он существует) в разделе casper-rw Этот шаг занимает чуть больше 2 минут. Для этой цели можно использовать cp -a .

Если вы хотите, чтобы резервное копирование на том же стике в отдельном разделе, копирование его с SSD на USB-стик с cp -a заняло примерно 31 минут (для 4,1 GiB данных в некоторых файлах 66500, USB3 stick в USB3 сокет). Предыдущее содержимое раздела было стерто rm -rf «$ {ZIEL }/upper»; rm -rf «$ {ZIEL }/работа»; rm -rf "$ {ZIEL }/lost + найдено до копирования содержимого в раздел резервной копии).

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

Конечно, это можно улучшить, сделав резервную копию backup.tar.gz . Это уменьшает объем записываемых данных, и, в особенности, второй этап может извлечь выгоду из этого.

0
ответ дан 7 May 2021 в 17:42

Используйте sync для принудительной немедленной записи в место назначения

Когда вы cp файл и он появляется в файловой системе назначения, не гарантируется, что файл действительно находится на носителе.

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

Вы всегда можете попытаться принудительно выполнить немедленную запись из буферов на устройство хранения назначения, используя sync после копирования, например, cp ${QUELLE} ${ZIEL} && sync

Кроме того, используйте rsync, чтобы копировать в место назначения только измененные или новые файлы.

0
ответ дан 7 May 2021 в 17:42

Другие вопросы по тегам:

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