Я бы хотел установить регулятор масштабирования частоты процессора для всех ядер одновременно, а не делать это отдельно для каждого ядра. Есть ли способ сделать это?
(Я знаю, что было бы легко присоединиться к губернатору /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
, но я не ищу нестандартного решения.)
Ответы:
Я по-прежнему Linux noob, но вы не думаете, что cpufrequtils позволяет вам делать это с помощью (его нет в Ubuntu OS, но есть в репозитории)
-r
флаг используется для установки изменений для всех ядер (связанных со всем оборудованием).источник
cpufreq-set
на самом деле не хватает в конечном итоге простой, но необходимой функциональности. Многие люди, как ясно показывают эти счетчики голосов, просто не знают об этом, потому что его описание просто вводит в заблуждение, чтобы завершить его.Я много гуглил и думаю, что это просто невозможно, поэтому я добавил следующую строку
.bashrc
:Теперь я могу запустить что-то вроде
setgov ondemand
и все ядра переключатся на регулятор по требованию .источник
кратчайшая команда для изменения регулятора всех ядер следующая:
Вы можете добавить его в .bashrc, как упомянуто htorque, вам нужно будет запустить его как root
sudo setgov performance
:источник
Можно также добавить завершение кода bash, пока мы на этом:
источник
Способ, которым я установил это, чтобы придерживаться, так как регулятор по умолчанию возвращается в powersave приблизительно через 30 секунд теперь, начиная с Ubuntu 16.04 или более поздней версии (я нахожусь на Ubuntu Mate);
Поместите этот (одну строку) код (спасибо, любезность switch87 в предыдущем ответе)
в файл в каталоге
Шахта - это линия выше «выхода 0» и без комментариев, под комментариями.
«rc.local» для тех, кто не знает, запускает команду как sudo. Кажется, что любая команда, чтобы изменить губернатора, должна быть запущена как sudo.
Это позволяет регулятору вернуться к powersave и через 60 секунд запустить код как sudo, чтобы вернуть его к производительности.
Измените «60» (в коде, который вы копируете) на любое время (в секундах. 60 = 60 секунд = 1 минута), в котором вам нужно отложить команду и «производительность» (в командной части) до того, на какой регулятор вы ее хотите изменить на.
Из моих часов поисков я не нашел более надежного решения этой проблемы, чем этот. Я полагаю, что на пару минут, что это на PowerSave, если это лучшее решение, которое я нашел, верно? Правильно.
Не лучшее решение, но оно делает его несколько постоянным после того, как оно мало переключается на энергосбережение. Если вы хотите загрузиться и перейти в игру или что-то в этом роде, вам придется подождать минуту, пока код, который вы только что вставили, переключит его с режима энергосбережения или сократит время на него (в зависимости от того, сколько времени это займет). все, чтобы начать, так что он вернется к производительности правильно).
И, как всегда, чтобы вернуться к настройкам по умолчанию (я видел некоторые проблемы с перегревом ПК людей, из-за чего они, возможно, по умолчанию установили его по умолчанию для powersave), просто удалите код из rc.local и перезагрузите или переключите его обратно вручную с помощью переключателя или значка индикатора процессора;
в терминале и или перезагрузись.
источник
Вы можете сделать это для всех ядер одновременно, запустив
источник
Основываясь на ответе switch87, я сделал простой скрипт
cpufreq-set-all
, который позволит делать другиеcpufreq-set
вещи со всеми процессорами:Теперь он может быть вызван (после
chmod +x
, конечно) так:или
источник