Благородство и приоритетные процессы в системе Linux - PullRequest
19 голосов
/ 19 апреля 2011

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

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

1 Ответ

45 голосов
/ 20 апреля 2011

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

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

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

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

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

...