Изменение приоритета процесса в linux для процесса jvm
Можно ли изменить приоритет процесса JVM с помощью nice на сервере [linux]. Я хотел, чтобы процесс JVM использовал максимум ресурсов ОС.
Какова стандартная практика? Люди настраивают ОС Linux специально для процесса, чтобы получить максимальную производительность?
2 ответа
Обычный подход справедливого распределения хорошо работает для большинства рабочих нагрузок, и не принято настраивать приоритеты для производительности. Приоритеты процесса настройки могут иметь нежелательные побочные эффекты. В некоторых случаях, например, в пакетных процессах, приложения специально обрабатываются.
Вам понадобятся привилегии root, чтобы дать JVM приоритет выше обычного. Это может быть приемлемо, если процесс связан с вводом / выводом. Если процесс связан с процессором, вы можете обнаружить, что он снижает производительность ВСЕХ других процессов. Это будет включать процесс, который вы использовали для повышения приоритета.
Это распространено nice
пакетные процессы, поэтому они не используют ресурсы, которые могут использоваться интерактивными процессами. Мониторы скорости процессора можно настроить так, чтобы они игнорировали такие процессы при определении необходимости увеличения скорости процессора. Если пакетные процессы отмечены, это обычно делается в скрипте, выполняющем процесс.
Современные ядра также позволяют устанавливать приоритеты ввода-вывода для процессов. Проверьте man ionice
, Если ваша JVM связана с IO, это может быть уместно.
Я бегу boinc
процессы чрезвычайно неприятны. Это потому, что я хочу использовать только циклы процессора, которые в противном случае не использовались бы для этих процессов. Они обычно используют более 90% доступных циклов.
Установка подходящего "хорошего" уровня даст этому процессору приоритетное время процессора над другими процессами. Вы сможете достичь определенной "производительности" только в зависимости от мощности вашего процессора.