And another one....
Just like with the C-states, I also played around with powerd. Tried to run my sys with "minimum" as power profile which resulted in an immediate drop in the CPU core temp on the most used core 3 by 4°C (from 60°C down to 56°C), but ended in network discos due to the cpu being overrun when trying to push 20 MB data/sec over the firewall.
Then I tried some settings with powerd and fine tune adaptive mode on command line, but this resulted in nor eal improvements.
And here comes powerd++ (https://github.com/lonkamikaze/powerdxx) which - according to the author(s) offers a much better way in handling/scaling the CPU based on the load.
Installation is pretty easy:
1) open the opnsense frontend, and under system -> settings -> misc disable powerd.
2) Open a shell on the FW box, change to the home directory of root, then install git:
3) Clone powerd++, change to the directory, compile and install it:
4) change the config for powerd++ by editing /etc/rc.conf:
5) Enable powerd++ and start it:
Results on my end:
When running powerd in combination with minimum as cpu profile, idle temp of core 0 was 55-56°C but I ran into network disruptions as soon as I tried to push 12 MB/sec or more data from WAN to LAN. With powerd/adaptive I ended up on 59-60°C SPU core temp and 63°C under load, but was able to push 20 MB/sec without issues.
With powerd++ / adaptive (no other changes applied), idle temp is at 57°C and I have no network problems pushing 20 MB/sec with core 0 reaching 59°C max.
As soon as I can shutdown the box and plug in a powermeter I can have a look at how much difference this makes, but based on the initial results you can save some energy.
Just like with the C-states, I also played around with powerd. Tried to run my sys with "minimum" as power profile which resulted in an immediate drop in the CPU core temp on the most used core 3 by 4°C (from 60°C down to 56°C), but ended in network discos due to the cpu being overrun when trying to push 20 MB data/sec over the firewall.
Then I tried some settings with powerd and fine tune adaptive mode on command line, but this resulted in nor eal improvements.
And here comes powerd++ (https://github.com/lonkamikaze/powerdxx) which - according to the author(s) offers a much better way in handling/scaling the CPU based on the load.
Installation is pretty easy:
1) open the opnsense frontend, and under system -> settings -> misc disable powerd.
2) Open a shell on the FW box, change to the home directory of root, then install git:
Code Select
# pkg install git3) Clone powerd++, change to the directory, compile and install it:
Code Select
# git clone https://github.com/lonkamikaze/powerdxx.git
# cd powerdxx/
# make
# make install
4) change the config for powerd++ by editing /etc/rc.conf:
Code Select
# nano /etc/rc.conf
rc.conf:
powerdxx_flags="-a adp -n adp -m 480 -M 1600" # set adaptive mode, min frequency to 480 and max freq to 1600 MHz
5) Enable powerd++ and start it:
Code Select
# service powerdxx enable
# service powerdxx start
Results on my end:
When running powerd in combination with minimum as cpu profile, idle temp of core 0 was 55-56°C but I ran into network disruptions as soon as I tried to push 12 MB/sec or more data from WAN to LAN. With powerd/adaptive I ended up on 59-60°C SPU core temp and 63°C under load, but was able to push 20 MB/sec without issues.
With powerd++ / adaptive (no other changes applied), idle temp is at 57°C and I have no network problems pushing 20 MB/sec with core 0 reaching 59°C max.
As soon as I can shutdown the box and plug in a powermeter I can have a look at how much difference this makes, but based on the initial results you can save some energy.
"