Отключить демон масштабирования процессора по требованию


13

У меня есть сервер, который на момент обновления до 10.04 теперь запускает демон масштабирования ЦП «ondemand». Почему бы это автоматически установить это? Я не хочу, чтобы мой сервер экономил энергию за счет производительности.


5
Вы принимаете губернатора по требованию за полномочия.
Леон Нарделла

3
Договорились с Леоном. Ondemand ускоряется, если есть чем заняться, и замедляется, если работает на холостом ходу. Он не ограничивает способность процессора изменять скорость, а скорее использует его.
Мак

Возможный дубликат askubuntu.com/questions/285434/…
Qasim

Это увеличивает время отклика на простаивающем сервере.
Студент в университете

Ответы:


32

Вместо того, чтобы отключить выполнение /etc/init.d/ondemandскрипта (как предложено Джорджем), вы должны использовать команду this

sudo update-rc.d ondemand disable

Чтобы система инициализации не запускала скрипт, это признанный способ сделать это! Отключение разрешения exec ( sudo chmod -x /etc/init.d/ondemand) может быть перезаписано при обновлении пакета.


Если я сделаю: sudo update-rc.d other_governor enable, будет ли установлен постоянный желаемый регулятор?
userDepth

5

Масштабирование частоты не является статичным. Как только есть работа, процессор начинает работать, P-состояния повышаются, и все летит.

Это включено, потому что это широко рассматривается как хорошая вещь. Экономит энергию (полезна для вашего кошелька и окружающей среды). Сохраняет тепло ( так важно в серверной комнате). И это довольно незаметно.

Более того, на современных чипах Intel, если у вас есть масштабирование, вы можете использовать «турбо-ускорение», когда одно ядро ​​будет работать со скоростью, превышающей стандартные. Это очень полезно для пиков однопоточной работы. Без включенного масштабирования вы этого не получите.


Сколько времени требуется, чтобы увеличить масштаб на P4 Xeon?
Студент в университете

Наткнулся на этот старый ответ, и, хотя я согласен с Оли, есть конкретные случаи, когда вы хотите отключить масштабирование процессора - например, запись звука. Если у вас нет особых потребностей, оставьте их по требованию
Panther

Случайно есть ли способ узнать, какой процесс постоянно меняет минимальное / максимальное значения частотного масштабирования? Это всегда меняется, и я не знаю почему. см. askubuntu.com/questions/800797/how-to-enable-turbo-boost
Себастьян Лорбер,

2

Вы можете установить утилиту rcconf debian:

sudo apt-get install rcconf

затем отключите службу "ondemand" оттуда.


Я не могу найти предупреждение об устаревании инструмента rcconf: вы упустили момент и указали совершенно неверный URL. Я не имел в виду способ настройки скриптов rc Arch, а скорее инструмент debian, и это выглядит живым и здоровым.
Мануэль

Спасибо за указание на это и предоставление полезной ссылки! (Я удалил свой начальный и неправильный комментарий)
чокнутый из-за natty

Также отредактировал оригинальный ответ!
Мануэль

2

Установите для всех процессоров регулятор производительности:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Все поддерживаемые регуляторы ядром Linux:

  • производительность Запуск процессора на максимальной частоте.
  • powersave Запустите процессор на минимальной частоте.
  • userspace Запустить процессор на указанных пользователем частотах.
  • ondemand Масштабирует частоту динамически в соответствии с текущей нагрузкой. Переходит на самую высокую частоту, а затем, возможно, уменьшается по мере увеличения времени простоя.
  • консервативный Динамически масштабирует частоту в соответствии с текущей нагрузкой. Масштабирует частоту более постепенно, чем по требованию.
  • schedutil Выбор частоты процессора на основе планировщика

См. Https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt.


2
Обратите внимание, sudo echo > ...что не делает то, что вы ожидаете: askubuntu.com/q/230476/158442
Muru

1

Чтобы все процессоры постоянно работали с максимальной производительностью на рабочем столе или сервере Ubuntu, выполните:

sudo chmod -x /etc/init.d/ondemand

в командной строке введите свой пароль. Это отключает сценарий оболочки, который заставляет все процессоры работать на скорости «OnDemand», делая их по умолчанию на полной скорости (производительность). Вам нужно будет перезагрузиться, чтобы это вступило в силу.

Я проверял это только в Ubuntu Jaunty 9.04, но он должен работать и не вызывать проблем на любой версии Ubuntu.

Я думаю, что Ubuntu по умолчанию странные для этого. Рабочий стол или сервер должны работать на полной скорости, по моему мнению.

С уважением, Джордж


1
Я не думаю, что это странно. Несмотря на то, что мобильность является наиболее важным сценарием для энергосбережения, снижение энергопотребления также означает меньший шум от вентиляторов в настольном сценарии и меньшее количество тепла в серверной комнате. Постоянно работать на максимальной скорости - пустая трата времени, которая действительно необходима в тех редких случаях, когда ondemandэто не так.
Бобинц

@bobince - Вы, вероятно, правы, но для настольного компьютера я заметил, что OnDemand дает вялый ответ по сравнению с производительностью, и я думаю, что компьютер все еще может нормально спать с вышеуказанным изменением. Это должна быть опция в Системе / Администрирование или Система / Предпочтения.
Джордж Гесляйн II

Да, единственное место, где это имеет смысл, - это ноутбуки, где время зарядки сокращается, а время работы от батареи увеличивается за счет масштабирования процессора.
LassePoulsen

кто-нибудь спасает окружающую среду
Сумасшедший о Natty

1

В некоторых системах регулятор 'ondemand', к сожалению, не работает.

Это относится к процессору Intel® R Core 2 TM Q9300 с тактовой частотой 2,50 ГГц и ядру 2.6.32-42.

Ядро считает, что может устанавливать частоту отдельно для каждого ЦП, в то время как аппаратное обеспечение фактически позволяет устанавливать частоту только для групп из нескольких ЦП (например, ЦП 0 и 1 вместе и ЦП 2 и 3 вместе).

Вы можете узнать, что ядро ​​не знает об этом, посмотрев файлы / sys / devices / system / cpu / cpu * / cpufreq / disabled_cpus, которые содержат «0», «1», «2», «3» вместо «0 1», «0 1», «2 3», «2 3».

Видимым эффектом этого несоответствия является однопоточный процесс, который запускается на полной скорости на одном процессоре (регулятор «ondemand» реагирует быстро), а затем, примерно через 20 секунд (зависит от настроек), теряет часть своей скорости.

Причина в том, что ОС с регулятором «ondemand» периодически повторно применяет низкие частоты на свободных процессорах, не ожидая, что это также неявно изменит частоту нашего занятого процессора. Это даже не видно, когда вы смотрите на / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq или / proc / cpuinfo, ОС просто не знает об этом!

Таким образом, в этих системах решение состоит в том, чтобы вернуться к простому регулятору производительности.

PS: В моем случае постоянная работа процессоров на полной частоте ничего не изменила в отношении шума вентилятора. Я полагаю, что когда процессор работает на холостом ходу, более низкая или более высокая частота не будет сильно влиять на его энергопотребление.


0

У меня новый процессор AMD Athlon II X4 631 (процессор Fusion для сокета FM1), и он не экономит энергию (я посмотрел его с помощью счетчика энергии)! У меня нет турбо-ядра, поэтому мне не нужно устанавливать параметры по умолчанию. Большинство новых процессоров экономят энергию самостоятельно.

При сравнительном анализе существует небольшая разница в диапазоне 1-2% при сравнении параметров по требованию и производительности.


Добро пожаловать в AskUbuntu! Вы можете подкрепить свои утверждения полной статистикой / исследованиями, поскольку ваш ответ может быть неверно истолкован как мнение, а не как исследуемый ответ.
Oyibo

Это также неправильно, на этой неделе у Apple возникли проблемы из-за замедления работы устройств для экономии энергии
Xen2050

-1

Это старый, но так как никто не упомянул об этом, и для полноты картины я добавлю, что аргумент о том, как процессор, работающий на максимальной скорости, будет расходовать энергию, производить тепло, шум вентилятора и т.д., НЕПРАВИЛЬЕН .

Почти все современные процессоры, особенно настольные / серверные, будут переходить в режим глубокого сна в режиме ожидания (Google Race to Idle.).

Масштабирование напряжения, вероятно, позволит сэкономить больше энергии, поэтому на ноутбуках это может немного увеличить время работы, но на настольных компьютерах и серверах регулятор производительности может подойти большинству «обычных» пользователей (которые не используют фермы серверов или аналогичные устройства).

Я использую gov производительности с моим i7-2600k, и температура процессора обычно составляет около 30 C.


Это тоже неправильно. Следите за темпами процессора и меняйте частоты, чтобы убедиться в этом сами (если ваша система не реализует это полностью / правильно). Смотрите также ссылку Apple, звучит как обычное масштабирование частоты / скорости
Xen2050

@ Xen2050, чтобы увидеть что для себя? Вы подразумеваете, что процессор, который работает при 70 градусах Цельсия в течение 2 секунд, может потреблять больше энергии, чем процессор, который работает 5-6 секунд при 60 градусах, или что-то в этом направлении? Это не так просто, как мониторинг температуры процессора в конкретный момент.
Денис

@ Xen2050 ваша ссылка указывает на iPhone, который представляет собой совершенно другую арку или процессоры. Я указал, что масштабирование напряжения в комбинации с определенным регулятором может помочь, например, на ноутбуках, и упомянул настольные (Workstation) и серверные процессоры явно, но на самом деле то, о чем я говорил, существует даже на телефонах уже много лет ( Ситуация, вероятно, более сложная в этом случае. Для MPU может потребоваться надлежащий регулятор для правильного использования определенного состояния C / P. В любом случае, прочитайте еще раз, что я набрал, и Google 'Race to Idle' и режимы глубокого сна процессора.
Денис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.