Question: What is Kondemand? Why do I see a lot of Kondemand process in my process list?
Answer: Kondemand is the process used for automatic CPU scaling on multi core linux system. It automatically reduce/drops the CPU clock speed to power usage when the CPU is not in use. This is done through scaling_governor available on linux. To see if your scaling_governor is set to ‘ondemand’ or not, you may use the following command:
# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
If your CPU is showing ‘ondemand’ scanling governor then the kondemand kernel process is active and will reduce your CPU clock speed on fly to reduce power usage. You can change this settings to performance on fly using the following small shell code:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
There is a linux service called CPUSpeed, this can tune your scaling governor back to ondemand after the reboot. You may shut it down:
service cpuspeed stop
chkconfig off cpuspeed
You may check your CPU speed is restored to the original through the proc filesystem:
cat /proc/cpuinfo