Самым быстрым путем объединение много файлов в один (tar czf является слишком медленным),

Если у Вас есть проблемы при получении “завершения аргумента”, работающего на новые команды затем compinit, вероятно, команда, в которой Вы нуждаетесь, однако это имеет механизм кэширования, который мог бы вызывать Вашу проблему.

В документации для моей версии (4.3.10) говорится, что compinit использует кэшируемый “файл дампа”, .zcompdump, сохранить скомпилированные функции завершения для ускорения последующих вызовов. Это только делает недействительным файл дампа, когда это замечает изменение в количестве файлов завершения (fpath файлы элемента, которые запускаются с #compdef … или #autoload …). По-видимому, установка нового программного обеспечения изменила бы количество таких файлов завершения (предполагающий, что это также установило свои файлы автоматического заполнения zsh в правильном месте), таким образом, я буду ожидать плоскость compinit работать. Если Вы находитесь в ситуации, где она не работает, Вы, возможно, должны обойти или вручную делать недействительным файл дампа.

Для пропуска использования файла дампа использовать compinit -D; это будет только влиять на текущую оболочку.

Для восстановления файла дампа удалите его и повторно выполнитесь compinit:

rm -i ${ZDOTDIR:-${HOME:?No ZDOTDIR or HOME}}/.zcompdump &&
compinit

Это будет влиять на текущую оболочку, существующие оболочки, которые выполняют плоскость compinit, и любые будущие оболочки.

24
22.08.2011, 04:54
4 ответа

Необходимо проверить, тратятся ли большую часть Вашего времени на ЦП или во вводе-выводе. Так или иначе существуют способы улучшить его:

A: не сжиматься

Вы не упоминали "сжатие" в своем списке требований, так попытайтесь отбросить "z" из своего списка аргументов: tar cf. Это могло бы быть, ускоряют вещи немного.

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

B: скопируйте целый раздел с dd

С другой стороны, если Вы создаете резервную копию всего раздела, делаете копию целого образа диска вместо этого. Это сохранило бы обработку и много времени поиска головки диска. tar и любая другая программа, работающая в более высоком уровне, имеет издержки необходимости читать и записи рабочего каталога и inodes для нахождения, где содержание файла и сделать больше главного поиска на диске, читая каждый файл из различного места от диска.

Для резервного копирования базовых данных намного быстрее используйте:

dd bs=16M if=/dev/sda1 of=/another/filesystem

(Это предполагает, что Вы не используете RAID, который может изменить вещи немного),

27
27.01.2020, 19:41
  • 1
    не сжимается: или используйте pigz если существуют в системе больше чем один процессор. А-ч –  Rufo El Magufo 21.08.2011, 23:39
  • 2
    LZ4/zstd и столь же быстрые алгоритмы сжатия может все еще стоить проверить, могут ли они ускорить процесс просто пишущий меньше данных (если данные сжимаемы вообще), будучи порядком величины быстрее в сжатии, но менее эффективный в зависимости от уровня и алгоритма, также человек gzip говорит, что "Уровень сжатия по умолчанию-6", таким образом, существует простор для совершенствования. –  LiveWireBT 24.08.2017, 10:56

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

Добавьте в файл tar

Если файлы только добавляются к каталогам (то есть, никакой файл не удаляется), удостоверьтесь, что Вы добавляете в существующий файл tar вместо того, чтобы воссоздать его каждый раз. Можно сделать это путем определения существующего имени файла архива в Вашем tar команда вместо новой (или удаление старого).

Запишите в другой диск

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

Не сжиматься

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

8
27.01.2020, 19:41

Я удивлен, что никто не упоминает дамп и восстановление. Это будет намного быстрее, чем dd , если у вас есть свободное место в файловой системе.

Обратите внимание, что в зависимости от рассматриваемой файловой системы вам могут понадобиться разные инструменты:

  • ext2/3/4-дамп и восстановление(пакет дамп в RH/Debian)
  • XFS-xfsdump и xfsrestore(пакет xfsdump в RH/Debian)
  • ZFS-zfs send и zfs recv
  • BTRFS-отправка btrfs и получение btrfs

Обратите внимание, что некоторые программы не встраивают -в сжатие (все, кроме канала дампа)-на стандартный вывод и используют pigz по мере необходимости. ;-)

2
27.01.2020, 19:41

Использование tar с компрессией lz4, как в

tar cvf - myFolder | lz4 > myFolder.tar.lz4

дает вам лучшее из обоих миров (довольно хорошее сжатие И скорость ). Ожидайте степень сжатия около 3, даже если ваши данные содержат двоичные файлы.

Дополнительная литература :сравнение алгоритмов сжатия Как смолить с помощью lz4

8
27.01.2020, 19:41

Теги

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