RoonCore memory usage get very high and OOM killed

I built a Roon Server on x86 based board, but roon server get oom killed every few hours.

Hardware specs: ( Intel UP Squared board)

Intel® Pentium™ N4200 (up to 2.5 GHz)
4GB LPDDR4
2x Gb Ethernet RJ-45
32GB eMMC (boot disk)

Library:
2TB files(mainly dsd format), 6000+ tracks

RoonCore version: 1.7 (build 505) stable

More than 3GB memory used within 4 hours system uptime.

Your core seems to be heavily underpowered.

  • The processor isn’t near of the Core i3 in terms of performance (but you may be able to live with it)
  • I think 8GB RAM would be more appropriate for your library size
  • eMMC hasn’t quite the same performance as an SSD and 32GB sounds rather small to hold the OS, software and Roon DB (for 6+k tracks)

Surely you don’t have to believe my analysis. You can easily run your own tests to verify. You may start with feeding around 1+k tracks or less to Roon and see if the system runs stable.

I tested this hardware on my another environment with more than 20+k tracks 6TB music files, stable for running more than 2 weeks, average memory usage is 1.3GB.
eMMC is pretty enough for my setup, OS/libs/softs get about 100MB disk space, as you can see from the last screenshot. (/cache dir for roon database, 28.6GB)

Only in this environment get crashed, hard to figure out what the root cause is. Maybe some music files(DSD) ?

2+k tracks is roughly a third of the 6+k tracks in this environment so 1.3GB times 3 memory usage, assuming memory usage growth is somewhat linear to tracks count growth, leads to the memory usage regions where the process gets killed.
But I’m not an expert when it comes to Roon memory usage estimation. I also don’t have your hardware/software environment at hand to test. So I don’t know what can be expected in your environment.

My apology, “2+k tracks 6TB music files” , should be “20+k tracks 6TB music files”, 6TB files can not be only 2k tracks.

Is Roon still analysing the library in the background? I’ve seen somewhat similar reports in the past were the cause was bad/problematic files.

If you split up your library in parts and point Roon at one part only at a time, you may be able to deduce the part of the library that contains the problematic files if this is what gives you trouble.

1 Like

wow, Never thought about this, very useful advice , i’ll try it ASAP. Thanks very much.