Ничем и приоритетные процессы в системе Linux

17

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

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

    
задан Hugo 19.04.2011 в 17:09
источник

1 ответ

40

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

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

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

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

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

    
ответ дан Turbo J 20.04.2011 в 01:44
источник