Столкнулся с тем, что при резервном копировании определенных каталогов с последующим их сжатием архиватором 7Zip, нагрузка на CPU в системе под 100%. Если запуск скрипта приходится на рабочее время это создает проблему, так ресурсы система захвачены одним процессом, а все остальное может оказать недоступны или частично доступным
Почитал по части использования архиватора 7Zip и в моем куске кода, как например:
set arhivator="%ProgramFiles%\7-Zip\"
if exist "%arhivator%\7z.exe" goto n:
:n
pushd "%arhivator%"
7z a -t7z -mhe %bupd%\%COMPUTERNAME%\%datef%_v1.7z %bupd%\%COMPUTERNAME%\%datef%\
rmdir /S /Q "%bupd%\%COMPUTERNAME%\%datef%\"
popd
По умолчанию 7-Zip:
Задействует все ядраУ меня включена максимальная компрессияДает 100% загрузку CPU
С учетом документации мне видится несколько вариантов решения моей проблемы:
Вариант №1: Ограничить потоки
На заметку: добавить параметр "-mnt" (multi-threading)
7z a -t7z -mhe -mmt=2 %bupd%\%COMPUTERNAME%\%datef%_v1.7z %bupd%\%COMPUTERNAME%\%datef%\
Примеры:
- -mmt=1 → 1 ядро (минимальная нагрузка)
- -mmt=2 → умеренно
- -mmt=4 → быстрее, но больше CPU
Вариант №2: Снизить уровень сжатия
На заметку: Параметр -mx=3 (у меня сейчас максимум)
Вариант №3: Задать приоритет процесса
start "" /log /wait 7z a -t7z -mhe -mx=3 -mmt=2 %bupd%\%COMPUTERNAME%\%datef%_v1.7z %bupd%\%COMPUTERNAME%\%datef%\
Вариант №4: Ограничить ядра
start "" /low /affinity 3 /wain 7z и т.д
Подведу итог что мне удалось подчерпнуть из документации:
- «-mmt» — ограничивает ядра
- «-mx» — снижает нагрузку
- /low — не мешает системе (при использовании утилиты start)
В общем я возьму на заметку текущее разобранное, но мне важно максимальное сжатие бекапируемого, а потому запускать скрипты буду в самое ночное время дабы не создавать нагрузку на сервисы систем.
Вот даже с учетом обнаруженного я подчерпнул для себя что-то новое и, следовательно, буду впредь подготовлен, а иначе как учиться если не сталкиваешься с трудностями.
На этом пока все, с уважением автор блога ekzorchik.