Благородство и приоритетные процессы в системе Linux
Я ищу способ изменить приоритет процесса через командную строку. Я нашел встроенный (Баш) nice
и команда renice
которые позволяют изменять правильность процесса, но не фактический приоритет, который вычисляется ядром.
Есть ли команда, которая позволяет установить приоритет? (Или я путаюсь между милосердием и приоритетом?)
1 ответ
Приоритет процесса в linux является динамическим: чем дольше он выполняется, тем ниже будет его приоритет. Процесс запускается, когда он фактически использует ЦП - большинство процессов в типичной системе Linux просто ждут ввода-вывода и, таким образом, не считаются работающими.
Приоритет учитывается, когда запущено больше процессов, чем доступно процессорных ядер: выигрывает наивысший приоритет. Но так как процесс победы со временем теряет свою устойчивость, другие процессы в какой-то момент займут центральный процессор.
nice
а также renice
добавит / удалит некоторые "точки" из приоритета. Процесс, который имеет более высокий nice
значение будет меньше процессорного времени. Корень также может установить отрицательный nice
значение - процесс получает больше процессорного времени.
Пример: в системе два процесса (1 и 2), вычисляющих проблему остановки, и одно ядро ЦП. По умолчанию nice 0
Таким образом, оба процесса получают около половины процессорного времени каждый. Теперь давайте переименуем процесс 1 в значение 10. Результат: процесс 2 получает значительно большее количество процессорного времени, чем процесс 1.
Примечание. В современных настольных компьютерах доступно достаточно процессорного времени - в наши дни они быстры. К сожалению, жесткие диски все еще относительно медленны при случайном вводе / выводе, поэтому даже хороший процесс может генерировать достаточно трафика ввода / вывода, чтобы значительно замедлить работу системы.