openHAB 2.1 very high cpu

I use an ODROID-C2 arm64 device to run openHAB. Up until version 2.0 of openHAB, this worked fine. Was running 64 bit JVM without any problem. But when I upgraded to version 2.1 the server starts to use a lot of cpu and always ends up maxing out on cpu.
On this forum I read that 32 bit JVM is probably better on arm platform. So I installed Oracle 1.8.0_144-b01 JDK. But this also maxes out after a while (couple of hours).
I tried to find out what is causing this high cpu usage. But I was not successful until now. I tried to switch of bundles one by one, but the cpu didn’t decrease.


Does anyone have any clues? The heap size doesn’t look that big (256 Mb), but I think this is managed by Karaf.


I don’t think many other users are experiencing the same problem. So I think it must be related to the device I’m using. Need to investigate some more. Maybe look into the Garbage Collection process?

After downgrading to openHAB 2.0 the cpu usage is normal again.

Sounds pretty weird. Does the “Threads” tab give you any clue? You should try to figure out, which thread is taking all the CPU and what this is doing.

Hi Kai,

Weird indeed. I’ve been looking through the treads, but didn’t find one that stands out. I’m not an expert on this kind of troubleshooting, so I need to find out most of the stuff on Google. But there is a lot off information on the internet. Unfortunately no situation/case is the same so it will take some time.


I remember people having issues with the serial library causing high CPU load (@kgoderis being one of those).
As you mention 64bit vs. 32bit, which is also a topic for the serial lib as it uses native code parts, maybe this is something to look at? Are you using any bindings that use serial ports / usb dongles? If so, could you remove them and check if it makes any difference?

Yes, I use both Z-Wave and Rfxcom bundles. I’ve seen the topics about 64 vs 32 bit as well.
I tried to switch off the bundles one by one in the Karaf console, but the cpu stayed at 100%. In fact I switched off all bundles (incl. the serial bundle), but the cpu remained at 100%. Maybe switching off bundles isn’t the same as removing them?

Stopping the bundles should be enough - at least as long no serial connection has been created already (then the problem might have started already). Simply deinstalling the Z-Wave and Rfxcom add-on would be the safest way to check as without them, you can be sure that no one creates a serial connection.

Hi David,

I had high cpu problems for months. In the end it was caused by the rfx transmitter. I’m not too deep into linux. The issue was solved by flashing new firmware to the transmitter. Stopping the rfx binding already brought my cpu load back below 10. I hope it helps.


Ok, thanks. Will try the rfxcom firmware update.

Thanks Casper (and Kai). The firmware upgrade for the rfxcom, solved my problem.
This looks far better!