Performance issues when using Blue Iris on a dual XEON Gold 5120 server

bozoreefer

Young grasshopper
Apr 22, 2024
55
21
bozo
Hey guys,

I'm trying to migrate Blue Iris from my I7-9700K rig to a Windows VM that is running on a XEON Gold 5120. The server does not have a GPU.

My only gripe is that there is so much lag when viewing live events or even play back.

I suspect thats due to the lack of a GPU and relying on the CPU. Also I dont think the XEON gold has quicksync capabilities.

I was thinking of putting a Coral TPU USB accelerator to help solve this issue, but thats another story.

Is there any way I can make it run more smoothly?

I gave the VM 32 cores and 32 gbs of ram and its still choppy.

Thanks
 
Some people run a VM fine while others never get it working.

With substreams a GPU and quicksync are not needed, so that isn't the issue.

Coral USBs have been shown to be problematic for BI so that would just add more complexity to your system.
 
  • Like
Reactions: bozoreefer
Whats the hypervisor? Something doesn't sound right. I have two VMs of BI: One in Proxmox and one in xcp-ng. The one is Proxmox is on an old Ryzen 1600AF with only 8 cores assigned and 12GB of ram. CPU usage averages 7% with 6 4MP cams. No quicksync here either. Just using substreams.

1733589255584.png
 
  • Like
Reactions: bozoreefer
Whats the hypervisor? Something doesn't sound right. I have two VMs of BI: One in Proxmox and one in xcp-ng. The one is Proxmox is on an old Ryzen 1600AF with only 8 cores assigned and 12GB of ram. CPU usage averages 7% with 6 4MP cams. No quicksync here either. Just using substreams.

View attachment 209008

I'm also using Proxmox.

I just moved Blue Iris back to that Windows VM and with 13 cameras, I'm at 100% CPU usage.

Maybe its running smoothly because of the Ryzen cpu?

I've posted my settings below.

Thank you!

1733590314053.png

1733590355751.png
1733590672714.png
1733590385698.png
1733590404130.png
1733590421432.png
1733590453463.png
 
I think I see my issue.

I'm using both substreams and main streams..

I'll remove the main streams to see if it solves anything.

I added the screen shot of the Video settings.


Thanks
 
You still want main stream quality and shouldn't remove it.

I just removed all the Main streams and the CPU usage dropped to 5%.

If I put the main streams back on, it'll probably go back up to 100%.

What do you recommend?

Also I noticed that even with just sub streams enabled, the CPU usage will jump to 100% when there is a trigger. I suspect its due to transcoding?

Any recommendations on the format settings page?

Thanks
 
The Xeon Gold 5120 has much worse single threaded performance than i7-9700K. That will be your primary limiting factor. It takes strong single threaded performance for Blue Iris to be able to play video without dropping frames, and even the most powerful systems struggle to handle 4K video at high frame rate in Blue Iris. The software just isn't optimized for smooth playback. For example I have a BI box running a Ryzen 9 5950x (roughly double the single threaded performance vs Xeon Gold 5120), and if I try to live stream a 4K 30 FPS camera into UI3, the frame rate ends up bouncing between about 23 and 28 FPS, which is roughly like dropping 10-20% of all frames. It is choppy as hell. It would be much worse on Xeon Gold 5120.

The lack of a dedicated GPU may be affecting performance as well, if you are accessing BI through remote desktop, VNC, etc. If you access through Blue Iris's web server then the GPU or lack thereof probably does not matter at all. A Coral device won't help at all.

Also possibly contributing to the bad performance is the fact you have two processors so the system has two NUMA nodes and I don't believe Blue Iris is NUMA-aware. Best case scenario, BI may just operate on one of the processors. Worst case, it operates on both indiscriminantly and therefore suffers a latency hit which means even worse performance.

If anything I would expect assigning the VM 32 cores would make the problem worse, not better, since there is no way 32 vCPUs get allocated all to the same physical CPU (that CPU only can do 28 threads per processor). I would give it no more than 14 vCPUs (the number of real physical cores per CPU) and if possible make sure the vCPUs are all pinned to physical cores all on the same CPU. Also make sure all the vCPUs are allocated as cores on a single virtual processor.

You're right, the Xeon Gold does not have Quick Sync, so make sure hardware acceleration is turned off in Blue Iris so it does not waste time trying and failing to use it.

Also I'd recommend using properly configured sub streams as this will reduce the amount of work the CPU needs to do, freeing it up to perhaps do a better job at playback. Although the way Blue Iris implemented sub streams it messes with the frame timing and makes it potentially more likely to stutter and not play back smoothly. It is what it is.
 
  • Like
Reactions: bozoreefer