Как я могу ограничить ограничение использования процессора для процесса копирования, когда он запущен? Мой друг и я планируем получить ПК для размещения серверов, и нам нужно знать, как ограничить это использование процессом копирования, потому что в прошлый раз, когда мы делали хост-машину, каждый раз, когда мы копировали новые файлы, серверы начинали отставать.
2 ответа
Используйте nice
для процессора
Приоритет планирования ЦП обрабатывается с помощью nice(1), который говорит:
Запустите команду COMMAND с настроенной точностью, что влияет на планирование процесса. Без КОМАНДЫ выведите текущую милость. Разновидности варьируются от -20 (наиболее благоприятный график) до 19 (наименее благоприятный).
Используйте ionice
для дискового ввода-вывода
Использование ionice -c3
будет использовать приоритет простоя для дискового ввода-вывода. Страница справочника ionice(1) гласит:
Программа, работающая с приоритетом простоя io, получит время на диске только тогда, когда ни одна другая программа не запрашивала диск io в течение определенного льготного периода. Влияние незанятых процессов на нормальную активность системы должно быть нулевым.
Объедините два варианта
Для наименьшего влияния на вашу систему вы можете объединить их. Например:
# Run script with lowest possible CPU and disk priorities.
nice -n19 ionice -c3 foo.sh
Копирование очень мало влияет на процессор, ресурс, который он использует, - пропускная способность ввода-вывода.
Если вы не хотите, чтобы они слишком сильно влияли на другие приложения, вы должны добавить префикс io-интенсивный команды к ionice -c2 -n6
. Вы также можете ограничить содержимое с помощью cgroups и контроллера blkio, но это более сложный процесс.