This tutorial demonstrates how to assure that Ubuntu Server 18.04 x64 will operate at a specific CPU frequency overclock. I will also demonstrate how to validate the frequency per CPU core and monitor the temperature of each CPU core in near real time.
This tutorial presumes you have already installed and updated the OS, in addition to having a stable overclock. In my case, I have found that my Intel i7-8086K operates at 5.2GHz at 1.392 volts while my RAM is using its XMP profile. This tutorial, however, only focuses on CPU frequency settings. Hyper-threading is disabled in BIOS so Ubuntu sees 6 cores and 6 threads.
sudo apt install cpufrequtils lm-sensors -y
sudo vim /etc/init.d/cpufrequtils
Edit and enable these lines to your target overclocked frequency:
ENABLE="true"
GOVERNOR="performance"
MAX_SPEED="5200000"
MIN_SPEED="5200000"
5.0GHz = 5000000 5.2GHz = 5200000 5.4GHz = 5400000
Note: If AVX is set to 2 in BIOS, even with this MIN_SPEED setting, Ubuntu will cap itself at 5.0GHz. Set AVX to 0 to assure Ubuntu will stay at 5.2GHz constantly.
sudo systemctl daemon-reload
Open a new terminal and watch the CPU frequencies for cores 0-5 (6 cores)
watch -n.1 "cat /proc/cpuinfo | grep "^[c]pu MHz""
Find the available temp sensors on your system and say YES to everything:
sudo sensors-detect
Open a new terminal and watch the CPU temps:
watch -n.1 "sensors"
We can use OpenSSL to burn the CPU for testing… this “-multi 6” flag will burn all 6 of my cores (be sure you have proper cooling on your CPU!):
openssl speed -multi 6
Note: Like in Windows, if my CPU is not properly cooled resulting in CPU temps at or above 100 degree C, my multiplier will automatically throttle down in order to keep the core temps down below critical. If you’re needing to test single-threaded performance, “-multi 1” will just burn one core. Burning half the available cores or less will keep temps down quite a bit since heat dissipation on the IHS is cut in half, meaning the multiplier should stay at the set x52. This is all dependent on proper cooling.
Also checkout CoreFreq for seeing greater CPU details like your core multipliers:
https://github.com/cyring/CoreFreq
sudo apt install dkms git libpthread-stubs0-dev -y
git clone https://github.com/cyring/CoreFreq.git
cd CoreFreq
make
Load the kernel module:
sudo insmod corefreqk.ko
Load the daemon
sudo ./corefreqd
In a new window:
./CoreFreq/corefreq-cli
Configurations that didn’t help me, especially after reboots:
sudo bash -c 'for i in {0..5}; do cpufreq-set -c $i -g performance; done'
for x in /sys/devices/system/cpu/*/cpufreq/; do echo 5200000 | sudo tee $x/scaling_max_freq; done
for x in /sys/devices/system/cpu/*/cpufreq/; do echo 5200000 | sudo tee $x/scaling_min_freq; done
sudo cpupower frequency-set -d 5.2GHz -u 5.2GHz -g performance -r
sudo cpufreq-set -d 5.2GHz -u 5.2GHz -g performance -r