How I can disable CPU frequency scaling and set the system to performance?
Solution 1
After struggling with ondemand
for a while, I will share how to permanently disable it in Ubuntu and its derivates.
Install cpufrequtils
:
sudo apt-get install cpufrequtils
Then edit the following file (if it doesn't exist, create it):
sudo nano /etc/default/cpufrequtils
And add the following line to it:
GOVERNOR="performance"
Save and exit.
Now you need to disable ondemand
daemon, otherwise after you reboot the settings will be overwritten.
sudo update-rc.d ondemand disable
And you are done!
You can check your settings with:
cpufreq-info
It will show a block of information for every core your processor has. Just check if all of then are in performance mode, and at the maximum speed of your processor.
Update:
The Debian Wiki says that sysfsutils
is necessary in order to maintain the settings across reboots, but that is untrue. Also, enabling sysfsutils
make my system unstable, so it's not recommended.
Sorry if I misspelled something. :)
Sources:
Solution 2
I cannot comment, so I had to resort to a new answer. For immediate results, make sure you do sudo /etc/init.d/cpufrequtils restart
for the new frequency to kick in after you follow all of Dennie's steps.
Solution 3
After having installed cpufrequtils by sudo apt-get install cpufrequtils
, look at the info given by the command cpufreq-info
, then create a file - sudo nano /etc/default/cpufrequtils
- and write into it as examplified in picture below. In your case max and min would be the same value.
GOVERNOR="ondemand"
MIN_SPEED="800MHz"
MAX_SPEED="950MHz"
Lastly the command to make the change take action and be permanent (except when booting up, that is) sudo /etc/init.d/cpufrequtils restart
, resulting in this output from cpufreq-info
:
peter@peter-HP-Compaq-2510p:~$ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 1.20 GHz
available frequency steps: 1.20 GHz, 1.07 GHz, 933 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 950 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 933 MHz.
cpufreq stats: 1.20 GHz:1,27%, 1.07 GHz:0,01%, 933 MHz:95,97%, 800 MHz:2,75% (5975)
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 1
CPUs which need to have their frequency coordinated by software: 1
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 1.20 GHz
available frequency steps: 1.20 GHz, 1.07 GHz, 933 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 950 MHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.
cpufreq stats: 1.20 GHz:1,26%, 1.07 GHz:0,01%, 933 MHz:95,83%, 800 MHz:2,90% (7039)
peter@peter-HP-Compaq-2510p:~$
This works for me on Xubuntu 18.04.2
Related videos on Youtube
toptenweb
Updated on September 18, 2022Comments
-
toptenweb over 1 year
My processor is running at 40% of its maximum speed, I want it to use 100% of the speed, all the time. I searched on Google but the tutorials are very old and they all differ.
So, how can I permanently disable CPU frequency scaling and set my system to performance mode?
Please, only terminal based solutions, I don't want applets.
I'm using Xubuntu 14.04 x64.
-
RubenLaguna about 9 years
/etc/default/cpufrequtils/
doesn't exist on my Ubuntu 14.04, it seems that the correct path is/etc/init.d/cpufrequtils
-
David 天宇 Wong about 9 yearsI did this with my server but I'm wondering if I should disable it after doing what I needed to do. Is this going to kill my server in the long run?
-
Jérôme almost 9 years@ecerulm:
/etc/default/cpufrequtils/
is sourced in/etc/init.d/cpufrequtils
so it works just as well, and it is easier to maintain your own settings over package updates if configured in/etc/default/cpufrequtils/
. -
Suici Doga almost 8 yearsMy A8-4500M still throttles although the temperature is below 80C since I undervolted it
-
laconbass over 7 yearsJust to note, you can also (sudo)
cpufreq-set -g performance
-
sudo almost 7 yearsI followed these steps in Ubuntu Server 14, but
cpufreq-info
still shows that some of my cores are downclocked. Could it be that some hardware override is preventing this from working? -
Xen2050 over 6 yearsIf you disable the ondemand governor (with update-rc.d) does that mean you can't later switch to it with
cpufreq-set
even temporarily? And how didsysfsutils
cause unstability, is there a Ubuntu bug about it? -
Fabby about 5 yearsWelcome to Ask Ubuntu. :-) Can you please edit your answer, remove the pictures and replace them with text indented by 4 spaces, please? Then leave a comment @Fabby and I'll turn the downvote into an upvote. (Why? Because pictures are not searchable by Google...)
-
PeterEriksson about 5 years@ Fabby The question now also supplies the examples in texted version! I can understand the purpose. However, for readability on my screen, it is better with pictures as I then don't have to side-scroll in the text. Don't have widescreen, which might solve that problem?
-
Fabby about 5 yearsMy apologies: tt's much clearer like this... (not as beautiful, but much more functional.) if you insist on having pictures in there, please feel free to roll back to the previous version and I'll even leave the upvote standing, but it's just not the way we do things here: text is text and GUI = screenshot! ;-)
-
The Thirsty Ape over 3 yearsFYI, for newer OS versions replace the
sudo update-rc.d ondemand disable
command withsudo systemctl disable ondemand