Отключить демон масштабирования процессора по требованию
У меня есть сервер, который на момент обновления до 10.04 теперь запускает демон масштабирования ЦП "ondemand". Почему бы это автоматически установить это? Я не хочу, чтобы мой сервер экономил энергию за счет производительности.
8 ответов
Вместо того, чтобы отключить выполнение /etc/init.d/ondemand
(как предложено Джорджем), вы должны использовать команду this
sudo update-rc.d ondemand disable
Чтобы система инициализации не запускала скрипт, это признанный способ сделать это! Отключение разрешения exec (sudo chmod -x /etc/init.d/ondemand
) может быть перезаписано, если пакет обновлен.
Масштабирование частоты не является статичным. Как только есть работа, процессор начинает работать, P-состояния повышаются, и все летает.
Это включено, потому что это широко рассматривается как хорошая вещь. Экономит энергию (полезна для вашего кошелька и окружающей среды). Сохраняет тепло (так важно в серверной комнате). И это довольно незаметно.
Более того, на современных чипах Intel, если у вас есть масштабирование, вы можете использовать "турбо-ускорение", когда одно ядро будет работать со скоростью, превышающей стандартные. Это очень полезно для пиков однопоточной работы. Без включенного масштабирования вы этого не получите.
Установите для всех процессоров регулятор производительности:
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
В некоторых системах регулятор "ondemand", к сожалению, не работает.
Это относится к процессору Intel® R Core 2 TM Q9300 @ 2.50GHz и ядру 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: В моем случае постоянная работа процессоров на их полной частоте ничего не изменила в отношении шума вентилятора. Я полагаю, что когда процессор работает на холостом ходу, более низкая или более высокая частота не сильно повлияет на его энергопотребление.
Вы можете установить утилиту rcconf debian:
sudo apt-get install rcconf
затем отключите службу "ondemand" оттуда.
Чтобы все процессоры постоянно работали с максимальной производительностью на рабочем столе или сервере Ubuntu, выполните:
sudo chmod -x /etc/init.d/ondemand
в командной строке введите свой пароль. Это отключает сценарий оболочки, который заставляет все процессоры работать на скорости "OnDemand", делая их по умолчанию на полной скорости (производительность). Вам нужно будет перезагрузиться, чтобы это вступило в силу.
Я только что проверил это в Ubuntu Jaunty 9.04, но он должен работать и не вызывать никаких проблем на любой версии Ubuntu.
Я думаю, что Ubuntu по умолчанию странные для этого. Рабочий стол или сервер должны работать на полной скорости, по моему мнению.
С уважением, Джордж
У меня новый процессор AMD Athlon II X4 631 (процессор Fusion для сокета FM1), и он не экономит энергию (я посмотрел его с помощью счетчика энергии)! У меня нет турбо-ядра, поэтому мне не нужны настройки по умолчанию. Большинство новых процессоров экономят энергию самостоятельно.
При сравнительном анализе существует небольшая разница в диапазоне 1-2% при сравнении параметров по требованию и производительности.
Это старый, но так как никто не упомянул об этом, и для полноты картины я добавлю, что аргумент о том, как процессор, работающий на максимальной скорости, будет расходовать энергию, производить тепло, шум вентилятора и т. Д., НЕПРАВИЛЬЕН.
Почти все современные процессоры, особенно настольные / серверные, будут переходить в режим глубокого сна в режиме ожидания (Google Race to Idle.).
Масштабирование напряжения, вероятно, позволит сэкономить больше энергии, поэтому на ноутбуках это может немного увеличить время работы, но на настольных компьютерах и серверах регулятор производительности может подойти большинству "обычных" пользователей (которые не используют серверные фермы и т. П.).
Я использую gov производительности с моим i7-2600k, и температура процессора обычно составляет около 30 C.