Чередование долговременной задачи для приостановки / запуска для уменьшения процессора

У меня есть большой файл, который мне нужен для mv и даже с nice -n19, похоже, влияет на производительность сервера.

Я думаю, что вариант будет состоять в том, чтобы запустить процесс в «кусках», в результате чего я запустил команду на несколько секунд, а затем спал на несколько, а затем возобновил процесс.

Есть ли способ сделать это из командной строки или лучшей альтернативы? В настоящее время я делаю Ctrl Z и fg вручную.

  • Каков результат команды «du» во время длинной копии?
  • Как перезагрузить фоновый процесс?
  • Моя скомпилированная программа запускается через init.d, но в итоге ее убивают
  • Что происходит после kill -CONT <PID>?
  • Есть ли утилита для демонтизации процессов в пользовательском пространстве?
  • Каковы различия между KILL, SUSPEND и TERMINATE процесса
  • Как подключить терминал к отсоединенному процессу?
  • Является ли сумма всех PID «utime» общей системной утилитой?
  • 2 Solutions collect form web for “Чередование долговременной задачи для приостановки / запуска для уменьшения процессора”

    Вероятно, ваше влияние на производительность вызвано узким местом ввода-вывода, поскольку mv обычно не требует много циклов процессора (если не используется шифрование / дешифрование). nice изменяет приоритет планирования задачи в списке задач, которые запускаются на CPU.

    Поэтому вместо nice попробуйте (для ядра> 2.6.25)

     ionice -c3 mv <src> <dest> 

    Из ionice -h

      ionice [options] <command> -c, --class <class> name or number of scheduling class, 0: none, 1: realtime, 2: best-effort, 3: idle 

    Из man ionice

      Idle A program running with idle I/O priority will only get disk time when no other program has asked for disk I/O for a defined grace period. The impact of an idle I/O process on normal system activity should be zero. 

    Что-то вроде:

     $command & pid=$! while kill -STP -$pid && sleep $interval && kill -CONT -$pid && sleep $interval; do :; done 

    может это сделать.

    Управление заданиями действительно связано с отправкой этих двух сигналов (SIGSTP и SIGCONT), поэтому это в основном управление заданиями выполняется вручную.

    Linux и Unix - лучшая ОС в мире.