Тонкость и приоритетность процессов в системе Linux

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

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

1 ответов


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

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

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

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

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