Мне (упростили) следующую команду:
mysqldump <databases> | bzip2 > backupfile.sql.bz2
По некоторым причинам процесс bzip2 сошел с ума и взял загрузку ЦП до 60. Я не знаю, почему, но я надеюсь, что хорошее использование могло бы смягчить его в будущем, но я только хочу хороший на bzip2, не mysqldump.
Я могу просто изменить его на
mysqldump <databases> | nice bzip2 > backupfile.sql.bz2
или сделайте я должен сделать
nice mysqldump <databases> | bzip2 > backupfile.sql.bz2
Спасибо
TL; DR: корректная команда
mysqldump <databases> | nice bzip2 > backupfile.sql.bz2
nice
команда только изменяет правильность команды, которую она получает как прямой аргумент. Это не относится к целому конвейеру или цепочке команд, если Вы просто пишете это в начале строки.
Поэтому:
mysqldump <databases> | nice bzip2 > backupfile.sql.bz2
сделает то, что Вы хотите и запускаете mysqldump
обычно, тогда как bzip2
выполнения с поднятым свойством правильности +10.
nice mysqldump <databases> | bzip2 > backupfile.sql.bz2
сделает противоположность того, что Вы хотите, она сделает mysqldump
хороший, но позволяют bzip2
выполненный обычно.
Третья опция, которая позволяет Вам выполнять все команды конвейера приятно, состояла бы в том, чтобы выполнить их в новом процессе оболочки с поднятой правильностью, как
nice bash -c 'mysqldump <databases> | bzip2 > backupfile.sql.bz2'
Однако обратите внимание на то, что повышение правильности процесса не обязательно уменьшает свое использование ЦП. Пока Вы все еще имеете ресурсы ЦП в запасе, хороший процесс продолжит использовать столько процессорного времени, сколько он может и требовать. Только если Ваш ЦП перегружается (подразумевать, что Ваши рабочие процессы запрашивают в общем количестве больше процессорного времени, чем можно предложить), хорошие процессы отступят и позволят ЦП отдать нормальным или нехорошим процессам больше приоритета.
Если Вы хотите к хорошему только bzip, выбирают первую версию.