Hi there
This is partly a post for posterity, but also a query for help.
After a bit of fiddling around, I've stumbled across some reasonable power saving measures for freenas 8.3 on my i3 (Intel DH57JG motherboard):
Tunables
hint.acpi_throttle.0.disabled=1 (Not using CPU throttling due to powerd issue)
hint.apic.0.clock=0 (Disable as many interrupts as possible)
hint.atrtc.0.clock=0 (Again, disable these timer interrupts)
kern.hz=100 (It's a NAS, we don't need millisecond jiffies)
Sysctls
hw.acpi.cpu.cx_lowest=C3 (This is where we get our power savings, rather than by powerd and throttling)
Other Settings
powerd=OFF (System -> Settings -> Advanced -> Enable Powerd)
I discovered 3 things on the way (that I haven't resolved).
First, I had an issue with powerd consistently wanting to set the frequency greater than the rating of my CPU. I suspect this may be to do with my customized kern.hz? This was one of the reasons that I decided to use C states instead of throttling to achieve what I wanted. By the way, my quick attempts to get C states happening at 1000Hz failed.
Second, my sysctl (hw.acpi.cpu.cx_lowest)... doesn't work when set in the GUI. Works fine when I open a terminal and set it manually afterwards. Until I do this, all 4 processors are stuck in C1 100% of the time. (I reboot to test this). Not sure if this is a real problem of just PEBKAC.
Third, I think there might still be something odd going on with interrupts. I was hoping (judging by http://wiki.freebsd.org/TuningPowerConsumption ) that my C3 state would jump to close to or at 100% when the box is idle. Instead, when top reports 100% idle, my states look like this:
It's not horrible, but I was hoping for better...
I'll save my battles with APM and drive spin down for another posting...
In short, the results of doing the above (including the sysctl) are that my CPU temp went from about 65C - 70C when idle to:
Can anyone suggest some help for my 3 problems?
Thanks
Simon
This is partly a post for posterity, but also a query for help.
After a bit of fiddling around, I've stumbled across some reasonable power saving measures for freenas 8.3 on my i3 (Intel DH57JG motherboard):
Tunables
hint.acpi_throttle.0.disabled=1 (Not using CPU throttling due to powerd issue)
hint.apic.0.clock=0 (Disable as many interrupts as possible)
hint.atrtc.0.clock=0 (Again, disable these timer interrupts)
kern.hz=100 (It's a NAS, we don't need millisecond jiffies)
Sysctls
hw.acpi.cpu.cx_lowest=C3 (This is where we get our power savings, rather than by powerd and throttling)
Other Settings
powerd=OFF (System -> Settings -> Advanced -> Enable Powerd)
I discovered 3 things on the way (that I haven't resolved).
First, I had an issue with powerd consistently wanting to set the frequency greater than the rating of my CPU. I suspect this may be to do with my customized kern.hz? This was one of the reasons that I decided to use C states instead of throttling to achieve what I wanted. By the way, my quick attempts to get C states happening at 1000Hz failed.
Second, my sysctl (hw.acpi.cpu.cx_lowest)... doesn't work when set in the GUI. Works fine when I open a terminal and set it manually afterwards. Until I do this, all 4 processors are stuck in C1 100% of the time. (I reboot to test this). Not sure if this is a real problem of just PEBKAC.
Third, I think there might still be something odd going on with interrupts. I was hoping (judging by http://wiki.freebsd.org/TuningPowerConsumption ) that my C3 state would jump to close to or at 100% when the box is idle. Instead, when top reports 100% idle, my states look like this:
Code:
/> sysctl dev.cpu | grep cx dev.cpu.0.cx_supported: C1/3 C2/205 C3/245 dev.cpu.0.cx_lowest: C3 dev.cpu.0.cx_usage: 25.74% 6.35% 67.90% last 295us dev.cpu.1.cx_supported: C1/3 C2/205 C3/245 dev.cpu.1.cx_lowest: C3 dev.cpu.1.cx_usage: 13.81% 6.40% 79.78% last 2059us dev.cpu.2.cx_supported: C1/3 C2/205 C3/245 dev.cpu.2.cx_lowest: C3 dev.cpu.2.cx_usage: 11.62% 7.85% 80.52% last 54us dev.cpu.3.cx_supported: C1/3 C2/205 C3/245 dev.cpu.3.cx_lowest: C3 dev.cpu.3.cx_usage: 9.55% 7.42% 83.02% last 11us
It's not horrible, but I was hoping for better...
I'll save my battles with APM and drive spin down for another posting...
In short, the results of doing the above (including the sysctl) are that my CPU temp went from about 65C - 70C when idle to:
Code:
/> sysctl dev.cpu | grep temperature dev.cpu.0.temperature: 48.0C dev.cpu.1.temperature: 48.0C dev.cpu.2.temperature: 46.0C dev.cpu.3.temperature: 47.0C
Can anyone suggest some help for my 3 problems?
Thanks
Simon