How to use the command 'cpufreq-set' (with examples)
- Linux
- December 17, 2024
The cpufreq-set
command is a tool used to modify CPU frequency settings on a Linux system. It allows you to control the CPU’s performance by manipulating its frequency, ensuring that the system can adapt to varying levels of load efficiently. The flexibility provided by cpufreq-set
is critical for optimizing power consumption and performance depending on the workload. This tool can adjust the frequency of individual CPUs, which is especially useful in systems with multiple cores where workload distribution varies. More information about the command can be found on manned.org
.
Use case 1: Set the CPU frequency policy of CPU 1 to “userspace”
Code:
sudo cpufreq-set -c 1 -g userspace
Motivation:
Setting the CPU frequency policy to “userspace” empowers users to have direct control over the CPU frequency. This policy enables manual tuning and can be particularly beneficial in environments where specific applications require precise frequency settings that are different from the system’s dynamic scaling. This approach allows users to experiment with various performance settings for optimizing specific workloads.
Explanation:
sudo
: Running the command with superuser privileges is necessary since modifying CPU frequency settings requires administrator rights.cpufreq-set
: This is the command to change CPU frequency settings.-c 1
: Specifies that the command is targeting CPU 1. The indexing usually starts at 0 for CPU 0, hence CPU 1 is the second processor core.-g userspace
: Sets the governor to “userspace,” allowing manual adjustment of the CPU’s frequency by the user.
Example Output:
Running the command generally produces no output unless there’s an error. To verify the settings, you can use cpufreq-info
to check the current governor on CPU 1.
Use case 2: Set the current minimum CPU frequency of CPU 1
Code:
sudo cpufreq-set -c 1 --min min_frequency
Motivation:
Setting a minimum CPU frequency can be crucial for applications that need a consistent performance level without encountering latency caused by frequency scaling down under light loads. By maintaining a specified baseline frequency, processes sensitive to frequency changes can run smoothly, improving overall responsiveness and predictability.
Explanation:
sudo
: Requires superuser privileges to change system settings.cpufreq-set
: Command used to alter CPU frequency values.-c 1
: Targets CPU 1 for the frequency adjustment.--min min_frequency
: Sets the minimum frequency for CPU 1. Replacemin_frequency
with a value found using thecpufreq-info -l
command, which gives the range of available frequencies.
Example Output:
No direct output is given, but you can confirm the change by using cpufreq-info
to display the current minimum frequency for CPU 1.
Use case 3: Set the current maximum CPU frequency of CPU 1
Code:
sudo cpufreq-set -c 1 --max max_frequency
Motivation:
Limiting the maximum CPU frequency can reduce power consumption and prevent thermal throttling, which is essential for devices where battery life and overheating are concerns. In laptops or embedded systems, it ensures the CPU does not exceed a certain performance level to maintain longer operational time and prevent excessive heat generation.
Explanation:
sudo
: Needed for administrative operations on hardware settings.cpufreq-set
: The command to make changes to CPU frequency settings.-c 1
: Indicates that the command applies to the second CPU core.--max max_frequency
: Sets the upper limit of frequency for CPU 1.max_frequency
should be chosen within the range provided bycpufreq-info -l
.
Example Output:
Similar to other cases, this command does not generate an output; however, verification is possible by inspecting the CPU 1 frequency range with cpufreq-info
.
Use case 4: Set the current work frequency of CPU 1
Code:
sudo cpufreq-set -c 1 -f work_frequency
Motivation:
Establishing a specific working frequency for CPU 1 allows precise resource allocation for high-priority tasks, ensuring they operate at optimal speeds. This can be advantageous when a known workload requires a stable frequency to achieve maximum efficiency without interruptions caused by scaling.
Explanation:
sudo
: Grants the necessary permissions to modify system-level settings.cpufreq-set
: Command alters the frequency setting of CPUs.-c 1
: Specifies the target as the second CPU core.-f work_frequency
: Directly sets the operating frequency of CPU 1 to a specified value. This value has to be within the bounds given by runningcpufreq-info -l
.
Example Output:
The command will silently apply the frequency settings. Validate the change by checking the current frequency using cpufreq-info
.
Conclusion:
The cpufreq-set
command is a powerful tool for managing CPU frequencies, providing greater control over system performance and power consumption. Whether adjusting policies or setting frequency limits, it empowers users to tailor their system’s behavior according to specific requirements and workloads. With careful use, cpufreq-set
helps in achieving an optimized balance between performance and efficiency.