Interpreting Average load metrics

I notice my Homey (early 2016 model) shows a lot of variation in the Average load metrics. I have seen values from 100% up to almost 250%, but most of the time their always above 100%.
I search the posts in this community but could find how these metrics should be interpreted and more important which values indicate a low, normal or high CPU load.
In my opinion a single core CPU can not exceed 100% load.

A load average isn’t a percentage, even though Athom has decided to show them as such. The number basically represents the number of processes waiting for a time slice on the CPU. These are “active” processes; for instance, a process that is just waiting for (say) some data coming in over a network connection is “sleeping” and doesn’t count towards the load. Only when there is actual data incoming and the app needs to be woken up in order to handle the new data will it count.

If the load is below 1, it means less than one process is waiting for a time slice, and (hence) there is no CPU contention. If the load exceeds 1, more than one process is waiting for a time slice, which means that there aren’t enough CPU resources available to handle all processes at that time. Not necessarily a thing to worry about, but if the 5-minute and 15-minute averages are also above 1, it means the processor is underpowered for the process load.

Athom multiplies the load average by 100 and sticks a ‘%’ after it so make it look better (I guess). If your Homey has more than a “100%” load most of the time, it’s underpowered and may feel sluggish.

FWIW, variation of the load is normal, if you have apps that periodically have to wake up to perform some action, but sleep most of the time, you’ll see periodic spikes in the load.

4 Likes

Thanks for your explanation, now it makes sense.
I’m using the Promethius app for collecting metrics and present them in Grafana, this app pushes the average load constantly above 100%. Since yesterday I replaced it by the InfluxDB app to get even more metrics, but this app pushes the average load above 200%. I will reach out to the developers to build in a throttling mechanism if possible. Or maybe it’s time to get a Homey pro :wink:

I had to disable Prometheus because it puts my Homey Pro load way over 1. I even disabled all other app that have a lot of state changes (like my own PowerByTheHour app), and this does decrease the load, but Prometheus still cloggs up my CPU.