I’m posting this largely because all the documentation I can find, and the discussions around this appear to be out of date, or at least not entirely accurate.
I run a Ubuntu server as my home NAS, storage server, general do things host, and for development work on some sites I maintain. It’s built around an Intel Xeon E3-1220 v2, 16 GB of DDR3 RAM and storage running on ZFS.
By default, Ubuntu runs a process on boot called ondemand (
/etc/init.d/ondemand). The process is simple enough, it’s a 73 line shell script that basically looks at the available CPU governors (
It then looks at what governors are available and if either “interactive”, “ondemand”, or “powersave” are, it sets those governors in that order.
So for example, if you have an E3-1220 v2; then the output of
/sys/.../scaling_available_governors will be
Since powersave shows up in the available list, it will then echo that to
So far all this seems reasonable, in a sense, and for older CPUs or maybe AMD or ARM cpus (I don’t know about this one for sure, as I don’t have any AMD or ARM systems) this may be the ideal way to go about getting the clocks on the CPU to scale dynamically.