Hi, everyone.
I spent the morning trying to figure this all out, and I think I've gotten it. So the first part are the steps I took to get the AMD P-States driver for CPU scaling to work. The second part is a discussion on using this driver and the benefits, if any, of changing this over leaving the default Proxmox settings.
My systems:
node1:
Ok, here's how to get it working:
I'm not a pro, so I don't know the best mode to pick, and I haven't done any testing on this. All I know is the CPUs went from running at max frequency 100% of the time to running based on the load.
Thoughts? Also please point out any errors I made. Thanks!
I spent the morning trying to figure this all out, and I think I've gotten it. So the first part are the steps I took to get the AMD P-States driver for CPU scaling to work. The second part is a discussion on using this driver and the benefits, if any, of changing this over leaving the default Proxmox settings.
My systems:
node1:
- Ryzen 9 5950X
- ASRock X570 Extreme 4 Motherboard
- 128GB ECC RAM
- OS drive: Mirrored 2TB NVMe SSD UEFI boot mode
- Ryzen 5 5600
- ASRock B550 Phantom Gaming ITX/ax Motherboard
- 64GB ECC RAM
- OS drive: Single 2TB NVMe SSD UEFI boot mode
Ok, here's how to get it working:
- Upgrade the kernel
apt install pve-kernel-5.19
- reboot
- Modify the kernel comandline
- For UEFI booting systems:
nano /etc/kernel/cmdline
, for GRUB booting systems:/etc/default/grub
- add these two commands on the same existing line, separated by a space:
initcall_blacklist=acpi_cpufreq_init
<-- Blocks the default CPU scaler and allows the amd_pstate driver to loadamd_pstate.shared_mem=1
<-- No idea what this does
- Now run
proxmox-boot-tool refresh
for UEFI, orupdate-grub
for GRUB systems - reboot
- For UEFI booting systems:
- Check if it worked
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
- You should see "amd-pstate"
- Set your desired scaling mode
- Check the available modes:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
- Add a crontab line:
crontab -e
(you might have to choose and editor if it's the first time) - Add the cronjob on a new line. Make sure to replace "powersave" with the desired mode
@reboot echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- OR, add the setting to the kernel command line:
cpufreq.default_governor=powersave
- run
proxmox-boot-tool refresh
- Reboot
- Check the available modes:
- Check the results
- To see the currently selected mode:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- To see what your CPU cores are running at:
watch grep \"cpu MHz\" /proc/cpuinfo
- To see the currently selected mode:
I'm not a pro, so I don't know the best mode to pick, and I haven't done any testing on this. All I know is the CPUs went from running at max frequency 100% of the time to running based on the load.
Thoughts? Also please point out any errors I made. Thanks!
Last edited: