As you can see based on the screenshots, conservative runs well below max frequency but both schedutil and ondemand stay at almost max level.
My concern is, given the lightweight programs I am running, should they always stay at almost max levels with ondemand or schedutil governor? Or is conservative not enough for the programs I am running?
My guess is, that the cpu script itself will raise the CPU frequency earlier when it’s used with the ondemand and schedutil governor. As it says in the perfomance options, the conservative governor will scale much slower, the clock speed will stay longer at the minimum until it’s clocking up.
You would need to log the cpu clocks over time, to be sure it’s always that high.
I know that RPi-monitor can do this, but of course this monitoring will also use some CPU time, so you will never have a fully objective result, I guess, but it’s worth a try.
You could also create a script which is logging the output of the command sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq permanently to a file (On your device this command may vary), but this method will also need some CPU time and can result in a raise of the CPU clock speed.
I recall there was a command that could display how long which CPU frequency was used. But I was not able to find it again. @MichaIng do you recall such a command?
Indeed the cpu command itself may be responsible for the load.
ondemand is meant to immediately max CPU frequencies when a certain load has been reached, 50% by default on DietPi. 50% can be reached quite quickly on 408 MHz. This inefficient behaviour is the reason why schedutil is the default on DietPi, the modern succesor.
schedutil uses information from the CPU scheduler itself, that way skipping a dedicated governor layer, to dynamically adjust CPU frequency, using all available pstates instead of just min and max. So you see those various different frequencies each core.
As you can see, it is on lowest frequency about 98% of the time. It is on higher frequencies for a very short time when you run interactive shell commands, like cpu itself.