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

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

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

  • Способы вызова системного вызова в новом ядре
  • Установлена ​​Fedora с двойной загрузкой рабочего стола Windows. Теперь я не могу получить полное разрешение монитора с помощью AMD Radeon HD 6450
  • Объединить два результата команды в одну строку при перенаправлении stdout
  • Создание нового initrd без установки ядра
  • Разрешения / etc / crontab
  • Откройте Java-программы Linux-машины на Windows с SSH?
  • Есть ли способ сделать это из командной строки или лучшей альтернативы? В настоящее время я делаю Ctrl Z и fg вручную.

  • Почему я не могу убить тайм-аут, вызванный с помощью скрипта Bash нажатием клавиши?
  • Откройте Java-программы Linux-машины на Windows с SSH?
  • Как «find -exec» передает имена файлов с пробелами?
  • Смутно о строфе конфигурации PAM и ролях параметров флага управления
  • Сценарий Bash при запуске? (Linux)
  • Добавить временную метку unix в файлы с пространством, используя скрипт
  • 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 - лучшая ОС в мире.