Тонкость и приоритетность процессов в системе 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 медленно на случайных операций ввода-вывода, так что даже хороший процесс может генерировать достаточно трафика ввода-вывода, чтобы значительно замедлить работу системы.