Благородство и приоритетные процессы в системе Linux

Я ищу способ изменить приоритет процесса через командную строку. Я нашел встроенный (Баш) nice и команда renice которые позволяют изменять правильность процесса, но не фактический приоритет, который вычисляется ядром.

Есть ли команда, которая позволяет установить приоритет? (Или я путаюсь между милосердием и приоритетом?)

1 ответ

Решение

Приоритет процесса в linux является динамическим: чем дольше он выполняется, тем ниже будет его приоритет. Процесс запускается, когда он фактически использует ЦП - большинство процессов в типичной системе Linux просто ждут ввода-вывода и, таким образом, не считаются работающими.

Приоритет учитывается, когда запущено больше процессов, чем доступно процессорных ядер: выигрывает наивысший приоритет. Но так как процесс победы со временем теряет свою устойчивость, другие процессы в какой-то момент займут центральный процессор.

nice а также renice добавит / удалит некоторые "точки" из приоритета. Процесс, который имеет более высокий nice значение будет меньше процессорного времени. Корень также может установить отрицательный nice значение - процесс получает больше процессорного времени.

Пример: в системе два процесса (1 и 2), вычисляющих проблему остановки, и одно ядро ​​ЦП. По умолчанию nice 0Таким образом, оба процесса получают около половины процессорного времени каждый. Теперь давайте переименуем процесс 1 в значение 10. Результат: процесс 2 получает значительно большее количество процессорного времени, чем процесс 1.

Примечание. В современных настольных компьютерах доступно достаточно процессорного времени - в наши дни они быстры. К сожалению, жесткие диски все еще относительно медленны при случайном вводе / выводе, поэтому даже хороший процесс может генерировать достаточно трафика ввода / вывода, чтобы значительно замедлить работу системы.

Другие вопросы по тегам