Linux Applications

Manage CPU Frequencies in Linux Using Cpupower-gui App

This article will cover a guide on using “cpupower-gui” graphical application that can be used to control and manage CPU frequencies and CPU governor on a Linux system. By tweaking these settings, you can tune your Linux PC to deliver more performance or you can choose settings to reduce power consumption and reduce battery usage. This app will not deliver performance beyond what a CPU hardware is capable of, but it can be used to make changes on the software side to optimize performance over the stock experience shipped by your Linux distribution. The performance gain or power consumption savings will depend on hardware configuration of your Linux system and results may vary from system to system.

Main Features of Cpupower-gui

Cpupower-gui can manage frequencies for both single core and multi-core CPUs where you can specify maximum and minimum frequencies for each core. In case of multi-core CPUs, it can set frequencies for individual CPU cores separately or collectively. You can also use it to make certain cores completely offline to reduce power usage. Cpupower-gui can save settings into multiple profiles so that you can apply a particular set of settings in one click and keep each set independent from others. It can also change the current CPU governor and comes with a few governor presets that can be used to control performance or power consumption of your Linux system.

Installing Cpupower-gui in Linux

You can install Cpupower-gui in Ubuntu using the command mentioned below:

$ sudo apt install cpupower-gui

Note that while testing the app, I found the repository version to be quite behind the latest version available on GitHub. To install the newest version on Ubuntu, you can add the official PPA repository provided by the developers. Follow instructions available here to do so.

Alternatively, you can download the latest “.deb” package directly from the repository and run the following two commands to install Cpupower-gui in Ubuntu:

$ sudo apt install gir1.2-handy-1

$ sudo apt show ./cpupower-gui_1.0.0-1_all.deb

Cpupower-gui may be available in default repositories of other Linux distributions, so you can search for it in the package manager. Additional installation instructions and distribution specific packages are available here.

Using Cpupower-gui in Linux

Launch Cpupower-gui from the main application menu available in your Linux distribution. Depending on CPU installed in your Linux system, you should be greeted with a window similar to this:

In the first dropdown menu called “Profile”, you will be able to choose built-in CPU performance profiles available in your Linux system. These profiles will automatically set CPU frequencies to increase performance or reduce power consumption.

Once you have made the changes, click on the “Apply” button located on the top right corner to apply the changes system wide. Note that you will have to do this every time after making changes to any field in the app.

Just under the “Profile” drop down menu, you will see tabular data showing current frequencies set for various CPU cores. Here you can make certain cores offline by clicking on their respective checkboxes.

Under the “Frequency settings” heading, you can select a specific CPU core, make it online or offline, and change its minimum and maximum frequency using the two sliders located just under the entry with checkbox and drop down menu.

Next, under “Power settings” you will be able to change CPU governor policy. A CPU governor scales CPU frequencies using some predetermined algorithms and policy rules. It can increase frequencies to improve performance when heavy calculations are being performed and it can reduce frequencies when only basic tasks are being carried out on a Linux PC. This results in lower power consumption. Some CPU governors run CPU cores at highest frequencies all the time, thereby giving maximum performance boost. However they are less efficient in reducing power consumption. You can read more about all major CPU governors from here.

Under the “Preferences” tab located on the top toolbar, you will be able to change the profile that will be automatically applied on every boot.

To save your settings to a custom profile, click on the “Profiles” button on top toolbar and create a new profile by entering a name in the input box (as shown in the screenshot below).

You can also use the command line interface of Cpupower-gui to control CPU frequencies and governors. To know more about these command line options, run the following commands:

$ cpupower-gui --help

$ cpupower-gui config --help

$ cpupower-gui frequency --help

$ cpupower-gui profile --help

$ cpupower-gui online --help

$ cpupower-gui offline --help

For instance, to change governor to balanced mode from command line, you will need to run the following command:

$ cpupower-gui --balanced

To set minimum and maximum frequencies of CPU cores 1, 2, 3, 4, and 5, you will need to run a command in the following format:

$ cpupower-gui frequency --min 900 --max 1500 1-5

More command line examples and detailed documentation can be found here.

Conclusion

Cpupower-gui provides a nice graphical interface that can be used to tweak CPU performance on your Linux system. Since it comes with support for profiles and governors, you can switch to low performance mode when running less CPU intensive apps to reduce power consumption. On the other hand, you can switch to performance mode when running CPU intensive applications like 3D games to get a performance boost.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.