Сокращение времени обработки ЦП с помощью nice? - PullRequest
1 голос
/ 04 декабря 2008

Мой хостинг-провайдер (pairNetworks) имеет определенные правила для скриптов, запускаемых на сервере. Я пытаюсь сжать файл в целях резервного копирования, и в идеале я хотел бы использовать bzip2, чтобы воспользоваться его высокой степенью сжатия. Однако при попытке сжать этот файл размером 90 МБ процесс иногда выполняется более 1,5 минут. Одно из правил ресурса заключается в том, что сценарий может выполняться только в течение 30 секунд ЦП.

Если я использую команду nice для «nicefy» процесса, это разделяет общее время обработки ЦП? Есть ли другая команда, которую я мог бы использовать вместо nice? Или мне придется использовать другую утилиту сжатия, которая не займет много времени?

Спасибо!


РЕДАКТИРОВАТЬ: Это то, что говорит их страница поддержки:

  • Запустите любой процесс, который требует больше чем 16 МБ памяти.
  • Запустить любой программа, которая требует более 30 Процессорные секунды для завершения.

РЕДАКТИРОВАТЬ: я запускаю это в сценарии bash из командной строки

Ответы [ 4 ]

5 голосов
/ 04 декабря 2008

Ницца изменит приоритет процесса и, следовательно, получит секунды процессора раньше (или позже), так что, если правило действительно касается секунд ЦП, как вы указали в своем вопросе, то нис вообще не будет служить вам меня просто убьют в другое время.

Что касается решения, вы можете попробовать разбить файл на три части по 30 МБ (см. Split (1)), которые можно сжать за отведенное время. Затем вы распаковываете и используете кошку, чтобы собрать кусочки вместе. В зависимости от того, является ли это двоичным или текстовым, вы можете использовать аргументы -l или -b для разделения.

5 голосов
/ 04 декабря 2008

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

3 голосов
/ 04 декабря 2008

Вы должны найти компромисс между степенью сжатия и потреблением процессора. Для bzip2 есть опции -1 ... -9 - попробуйте "настроить" его (-1 - самый быстрый). Другой способ - проконсультироваться с вашим провайдером - возможно, вы сможете предоставить особые разрешения вашему сценарию для более продолжительного выполнения.

1 голос
/ 04 декабря 2008

Нет, nice влияет только на то, как запланирован ваш процесс. Проще говоря, процесс, который занимает 30 процессорных секунд, всегда будет занимать 30 процессорных секунд, даже если он прерывается на несколько часов.

Я всегда испытываю острые ощущения, когда загружаю все ядра своей машины с некоторой изрядной обработкой, но все они ухожены. Мне нравится видеть, что монитор ЦП работает максимально эффективно, пока я бродю по сети без каких-либо заметных задержек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...