In linux it’s possible to change the priority of the process, i.e. put it in RealTime. My questions are :
1 / Is it possible to know the right description and utility of each process in Roon, i.e. RoonBridge ; RoonServer ; RAATServer ; RoonAppliance ; RoonBridgeHelper ?
2 / Why do we have so many process when RoonServer or Bridge start ?
My goal it’s jus to identify the right approach to optimize the priority of each process and to correctly understand the utility of each of them.
RoonBridge - the toplevel watchdog process for RoonBridgeHelper + RAATServer
RoonServer - the toplevel watchdog process for RoonAppliance
RoonAppliance - this is where the “Roon Core” lives
RAATServer - speaks the RAAT protocol and then talks to audio drivers to pass on the audio stream
RoonBridgeHelper - manages some administrative details for Roon Bridge
The two toplevel watchdog processes are very simple and do almost nothing but watch and restart the other stuff if it crashes, after update, etc. They are isolated from the other process for fault tolerance purposes.
RoonAppliance and RAATServer are where most of the software lives.
We isolate the audio handling stuff in RAATServer because it is time critical and because architecturally we like to put endpoints + cores on separate hardware much of the time–so they are cleanly separated components. Sure, you can run them on one machine next to each other, too, as you describe here, but separating them creates additional capabilities.
As for priorities…
I would not advise increasing priority on RoonAppliance since it engages in both foreground and background processes in different threads, and adjusting process-level priority would unduly elevate background work.
RAATServer already chooses the appropriate scheduler params for the time-critical audio-handling threads. I don’t think extra prioritization is needed.
I would not advise increasing priority on the remaining processes because they don’t engage in performance-critical activities.
I’m running a Roon client on a windows 10 PC to a USB DAC (Chord Mojo - getting 3MB/s of data), Roon Server is on a QNAP NAS. I also use some pretty nasty software from Adobe and Autodesk that seem to have no concept of a “multitasking operating system” as they tend to hog up all resources even for seemingly low priority tasks (such as saving a file…). I am looking to set Roon up so that RAATServer always has priority and will not stutter when Maya or Photoshop decides to take everything on the table. Do you have any suggestions (beside use a Rpi )?
I wouldn’t think of this as a setup/tuning issue. Something is going wrong and it’s probably complaining, but you’re not seeing the complaints.
Almost always, resorting to manual management of scheduler priorities creates a brittle situation or unintentionally makes things wore.
RAATServer is already requesting the appropriate priority from the operating system for an audio playback application. Windows should be able to manage using heavy software and playing audio at the same time.
If I were you, I’d be looking for evidence of a hard failure and trying to address that instead of trying to tune my way out of this.