У меня есть база, бэкап которой после сжатия занимает примерно 10Гб. Так вот, на компьютере с общей численностью ядер 8 архив создается примерно 12 часов. 7z вроде как должен по умолчанию уметь использовать все имеющиеся ядра. Или я ошибаюсь? Как можно ускорить процесс архивирования, пусть даже путем некоторого увеличения размера архива? Причем ускорить хотелось бы минимум раза в два.
Я так понял, что больше 2х ядер он не берет по любому. Ты строку приведи, с какой архивируешь... По любому можно уменьшить силу компрессии, когда доведешь до нуля, время архивирования будет равно времени копирования...
Я бы паковал директорию. Рано или поздно добавится один файл и ...
И учти, что он прожорлив до памяти, это если несколько копий запускать.
В мане, кстати, есть пример
Цитата:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=64m -ms=on archive.7z dir
попробуй взять его и потестируй с разными -mx=, двигаясь к нулю.
При следующем архивировании поиграюсь с параметрами, а пока запустил всё-таки в три потока для пробы, судя по прогрессу, должен часов за 9 управиться, т.е. ускорение на 25% примерно.
OlegON➤ Я так понял, что больше 2х ядер он не берет по любому...
Это не его собственное ограничение, а формата lzma.
в bzip2, lzma2 он может запустить больше потоков. причем даже больше, чем ядер. где-то на их когда-то форуме проскакивало, что без этого процы могут не догрузиться.
да, забыл, вот в lzma оно вообще не параллелится, а в lzma2 - не больше 2х потоков. У меня по крайней мере не получилось. Только что проверил твою строку - 2 потока.