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

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

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

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

  • Добавление «случайной числовой энтропии» для ключей GPG?
  • Вставить пробел между цифрой и алфавитом в определенном столбце
  • замените n-й столбец csv-файла с помощью таблицы поиска
  • Обновление ядра удаляет Xorg
  • Как Linux обрабатывает 2 одинаковых адресата в своей таблице маршрутизации?
  • Каков прогресс в улучшении производительности системы / реагирования во время ввода / вывода с высоким диском?
  • Каков предел на нет. из разделов, которые у меня есть?
  • Хвост журнальных файлов на двух разных хостах
  • 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 - лучшая ОС в мире.