nice/renice меняют приоритет в очереди планировщика, но не ограничивают, сколько ядер или % CPU займёт процесс. Для этого — taskset и cpulimit.

taskset привязывает процесс к конкретным ядрам (CPU affinity) — чтобы шумный batch-job не мешал latency-чувствительному сервису:

taskset -c 2,3 ./backup-script.sh   # сразу на ядрах 2 и 3
taskset -cp 4,5 12345               # перепривязать уже запущенный PID

cpulimit ограничивает процент CPU у уже работающего процесса, периодически ставя его на паузу — без изменения priority:

apt install cpulimit
cpulimit -p 12345 -l 50    # не больше 50% одного ядра

Для systemd-сервисов то же самое делает CPUQuota=, но для разового процесса проще не трогать unit-файл.

#linux #sysadmin #performance #cpu