Calculating CPU And RAM For NVR

Hi everybody

As i known there are many tools and websites support for calculating disk space, bandwidth, lens, etc... but for CPU and RAM there are not much. Maybe on VMEs Provider websites they isuse some guidelines or recommendations for their software. So are there anyway or a formula to calculate CPU and RAM.

Thank you


Its really going to depend on what VMS you are using, and how it operates. For example the way that motion detection is processed if your using Server Side or Camera Side VMD, that will step your CPU requirements way up. The number of users, the number of streams each user is watching, there are so many variables that its almost impossible. But generally the manufacturers are going to give you some sort of estimate or recommendations based on their average use, then you take good judgment and common sense and base your system around that. Manufacturers like ONSSI will actually help you spec out the server or give your specs based on your needs, Exacq its really hard to under build one these days because its not resource intensive.

But as for calculators I have not seen anything and having the VMS manufacturer onboard and assisting is the best solution if your not sure.

Like Undisclosed 1 says, it really depends on the VMS. It can't be simplified to a certain number of cameras needing a certain processor/RAM combo.

Moreover, you want the manufacturer to fully support the system, so asking and following their recommendations is important. If you don't follow them, they could simply come back to you should issues arise and tell you the server was under specified.

All that being said, I can sum up some recommendations from our VMS Server Load Fundamentals:

  • You're better off spending money on increased CPU than increased RAM. Memory is rarely a limiting factor in throughput handling on a VMS server. If there is a lot of processing happening, like advanced analytics or server side motion detection, it may have an effect, but even this varied depending on the VMS.
  • Running server side VMD can max a CPU very quickly. For example, in our tests, server side VMD on 10-12 cameras added 20% or more CPU usage. This is why camera side VMD is as prevalent as it is.
  • Finally, unless you're running very low camera counts and relatively low resolution, don't view video on the VMS machine. Viewing only 4-5 1080p cameras can drive a low end PC to 100%.

Ethan is spot on, but there is one item that we frequently overlooked early on. If you will have mobile clients viewing video please be aware this is frequently done through transcoding which can prompt a very high processor load. We have servers that record 90 or so cameras at resolutions of 1080p to 5 MP at 6-8 FPS using only 30% of the processors. As soon as two people hop on with mobile clients pulling 8 high resolution streams each that quickly jumps to 80% or more.

As everyone has stated in this thread the performance greatly varies depending upon the VMS.

2, that's a good point. Some systems, because of that, recommend running the mobile server / transcoder on another machine.

At some point, hopefully, VMSes will be able to send H.264 straight to web / mobile client without plugins.

Thank you all for your ideas.