VMS Server Load Fundamentals Tested

Published Feb 11, 2014 05:00 AM

*** ******** ** * ****** ** you **** ** *** *** ********? What ****** *** ****** ****?

*****'************* ******************, ***** ***, *****'* *** ***** been ** *********** **** ** *** server ****.

** **** ******, ** ***** *** test ******** ************* **** * ***** (Exacq, *********, ***** *** ******* *****/**) and ** *********** **:

  • ****** ***** ******
  • *** ****** (**** ******, ********* *** key ***** **** ********)
  • **** ******* ****** 
  • *******, ***** *** ***** *** *************** that **** *** ** **** ****:

    • *** > ***: **** ******** *** ****** ********, ***** is ****** ***** ********** ********** ***** than ****** **** ******* ** ******. RAM *** * ****** **** **** advanced ********* **** ******* ** *** frames.
    • *** ******: **** ********, ****** **** ****** ********* should ** *** ** *********, ***** quality *******, ** ********* **** ** reduce *** *****. ** ********* ******* motion ********* ** **** ******* ** full**************** **** **** *********** ****** *** a ******.
    • ******** *******: ******* ****** ** ********* ** * machine ******** **** *** *** ****** unless *** ** ** ******* **** faster ********** *** ********* ******** ** handle **** ********* ****. ********* ***** of *** *** *** **** ******* maxed ** ***% ** **** *** camera ******.

    **** **** **** ** *** ** exhaustive **** ** *** ****, *** performance ** ****** *** ****. ***** should ********************* ************** ***** ** *** ***** deployment.

    Key ********

    * *** *** ****** **** *** of *** ****** **** ******* ** four ****:

    • *** ****** **** *** ** ******* of ~*% *** ***** **** ******* recording ****, ** *******, *** ** motion ********* ** ********* ** *** test ****** (**** **** **** **, 16 ** ***).
    • *** ***** ******** ***** ** ******** regardless ******** ** ******* ********. ****** ********* only ********* ****** ***** ** ***** Next, *** **** **** ********* ** all ****** ******* ** **** *** frames. ** ***** **** ****** * steady ******** ** *** *****.
    • ********* *** ** ******-**** ****** ********* and ***** ********* ****** ****** ** VMS *** ***** ****** **** (*** frames, *** ****** ****, ********* ****** vs. **** ******, ***.).
    • ********* **** *** (~*% *** ***** per ****** ** ****) **** ********** motion ********* ** *** ****** **** (or ***** * ********* ******** ** 1000ms ** *** **** *******).
    • ********* ****** ** *** ****** ******** in **** ****** ***********, ********* ** ~4-6% ******** ** *** *** ****** over ******* ** ****** **** *********.
    • *** ****** **** ***** * ********* lower ********** ****** *** ****** ********* was **** ***** **** ***** **** resolution *******, ***** * *% ******** per ******.
    • ******* ****** ****** *** ******** ** our **** *** **** *******, ******* from ** ********** ******** ** *** utilization ** ***** * **% ******** (from **% ** **% ***** *** utilization) ****** ** ******* ** ******, depending ** *** ***.
    • *******, *** ***** ******* **-***% ** only **** ******* **** ***** ******* test ******** ******* ** ***** **** for ********* ** ***** ******* (**** core ***, *.* ***, *** ***).

    Per ****** ******

    ** ***** *** **** ** ****** cameras *** ** * **** ** each ******, ***** **** *** *** and **** *** ********:

    **** *** **** ******

    ** *******, ****** * ****** ****** increased **** ** ************* *% **** no ***** *******, ****** *********, ** analytics **** *******. *** ****** ******** average ****** **** ** ****** ** 0.3-0.4% ** ~*%. **** *** ****** scaled **** ******** ** ****** ***** increased ** **** *****, **** ****** increases *** *** ***** ** ****** camera (** **** ** *-*%), *** less ** *** ******* ** *** 12 (****** ** *** *-*% *******).

    ********* ** ***** **** ***** *** camera, **** *% **** *** ****** added, ** *% **** ****** **. ***** Next **** ******** ******** ********, ********** for * ****** ******** ****  (~*%), but ***-****** ********* *** ***** ***, less **** *% *** ****** *** a ***** ** **%.

    *** *** **** **

    ********* *** ****** **** ******* **** using *** *** ******* **** ***. On *******, **** ****** ***** ******* 1-2% *** ***** ** **** ***** powered *******:

    Server **** *** ****

    ** ****** ******-**** ***** ****** ********* using ***** ********* ****, **** **** different ******* *** ********** *****.

    *** ****** **. *** ******

    ********* ****** ** *** ****** ******** in **** ****** *** *********** **** **** key ****** (* ******* ******* ** Milestone *** *****). **** ***** ********** this ******* ******** ****** ***** ******* using ********* ********** *** ** ******, keyframe **** ****** *********, *** *** frames.


    ********* ****** ********

    ************ ** ******** ***** ****** ** be ******** ***** * ***** ********** secondary ******, ******* ** *** **** resolution **** ******* ******, ******** *** consumption. ***** **** ******* ** ** Spectrum, *** *******, ******* ****** ** increase ** *** *********** *** ******-**** motion ********* ** *** *******. *** increase **** ***** *** **** ******* stream ** **** ******, ~**% ****** 12 *******. **** ***** ******** *** consumption *** **** *** *** **** quality ******* ** ** ********:

    Viewing ****** ****

    ** ****** **** ** **** *** higher *** ** *******, ** **** as * ***** *** ****-**** *** PC. **** *** ****** **** ***** ******* client ****, ******* *** ********* *******, to ***** *** **** ******** ****** load.

    **** *** ****** ******* ***********

    ****** ** *** ****** *** *******, with *** ******* ********* ********* *** dedicated ******** **** *** ******** ** most, **** ******* ******* ** ***. Exacq *** *** ****** ******* ********, increasing **** * *** *******, ***** Axxon *** ** ******** **** ********* substantially.

    **** ** ******* ***********

    *******, ***** *** ******* **** ***, CPU ***** **** ***** ******* ***** out ** ***% ***** **** *-* cameras **** ********* *** *****, ******* emphasizing *** **** *** ******** ******* client ******** ** **** ***** *******.

    **** **** ***** ******* *** ****, depending ** *** ****** ********, ****** hardware, *** ***** **** ***********. **** is ******** **** ** * ******* indication ** *** **** ********* ***** default ********, *** * ********** **********.

    Test ********* 

    **** ******* ****, ** **** *** following ***** ** ****** ************ **** as ******** *** ********** ** ********:

    • *** **** ** *** ********, **** no *** ******** ******* *************, ****** each ****, ** ******* ** ******** baseline *** *********** ******.
    • **** ******, ******** *** *** ********** VMS **** *******. **** ******** **** specific *** ********* ********, ** **** as *** ******** ** ***** ********** services ********, ** ***** ********** ** load, ** ****.
    • ************ **** ***** **** ** ******* added, ** *** * ******** ** performance **** ** ********* ****** *****.
    • ******* **** ******* ** *** ********** in *** *** *** ** * time ** ********** **** ****** ** individual ******* ** **** **** *****.
    • **** ******* *** ******** *** **** VMS, ** **** ** ***** ** different *** ********* (***, ******** **. all ***** **********, ***.), **** *** cameras ******* *** **-***** ** *** same *****.
    • *** ****** *** ******* **** ******** on * ******** ******, **** ** connection ** *** ***** ********.

    **** ******* *****

    **** ***:

    • ********* ******: ******* * *** **-***
    • *********: *****(*) ****(**) **-****** *** @ 2.40GHz (* ****), ~*.****
    • ******: ******* ***
    • ******** ****: ****** ******* ** ****, 2GB

    *** ***:

    • ********* ******: ******* * *** **-***
    • *********: *** *-**** ********* (* ****), ~*.****
    • ******: ****** ***
    • ********** ******** ****, ** ********* ***

    *** ******* ***********

    *** ********* ******** ** **** *** were **** ** **** ****:

    • ***** ****: *.*
    • ** ********: *.*.*.****
    • *****: *.**.*.*****
    • *********: **** **
Comments (31)
Avatar
Ethan Ace
Feb 11, 2014

This is the first of our server load testing, and most fundamental. We know we've gotten many questions about this topic and many of you are excited about this and more advanced aspects. Let us know what you'd like to see in the comments.

ng
nidal gharzeddine
Feb 11, 2014

Great start, looking forward for part two

Why don’t you have all four VMSs on the same chart for the CPU utilization - the low end PC and the High end PC? And, the same thing for the local viewing performance?

JS
Josh Snow
Feb 11, 2014
Why did you use these vms? What drove the selection ?
Avatar
Ethan Ace
Feb 11, 2014

Josh, these were the VMSs we've had installed for prior tests, and we felt they covered a good part of the spectrum, with various performance, viewing, VMD differences.

Avatar
Luis Carmona
Feb 11, 2014
Geutebruck USA • IPVMU Certified

Great test and a good start if you are going to do more.

One thing, just to be certain, it sounds like for the high end you used a machine with (2) physcial CPU's, each with quad cores, is that correct?

Also, as to RAM, you might want to list which VMS's use the operating system's file system for database files, which I know Exacq does, and which uses actual database container files, like some version of SQL or other native version. I have a feeling that would affect RAM requirements, or maybe not as further testing may or may not show.

Avatar
Ethan Ace
Feb 11, 2014

Off the top of my head, I'm going to agree with you. Simply because the CPU/RAM impact of those databases must be accounted for when considering total CPU load. This is why we did not simply record the consumption of specific services, but instead took overall system load, since many of these VMSs required multiple services of their own plus database services in order to operate.

And yes, two quad core CPUs.

JS
Josh Snow
Feb 11, 2014

Right on-- any way in the future we can do a bench test on all VMS Client / Server i would like to understand independtly how Genetec, Milestone, Aviglon, Exacq , Lenel etc stack up from a server / client hardware usage and it would be nice to do a review on failover capabilities- how well they work etc.

Good work guys!

Avatar
Nathan Wheeler
Feb 11, 2014
Hi Ethan, Your chart for vms load with client running doesn't match your written results right above it. In the paragraph above it you attribute lowest CPU load result to DW Spectrum but in the chart you credit Exacq. Which one was which?
Avatar
Ethan Ace
Feb 11, 2014

I've clarified that paragraph. DW Spectrum was had the lowest increase in CPU utilization when the client was running. Exacq was lower overall.

That being said, we really are not aiming to make this a shootout, but that chart lends itself to that. I'm editing to show the difference between client open/client closed CPU usage for each individually instead.

TR
Tim Russell
Feb 11, 2014

Incredible article Ethan, I think this highlights the importance of head end hardware and infrastructure on large systems, obviously, with more cameras and higher resolutions, the problem is compunded.

I didn't realise that you could use motion detection on key frames and separate resolutions, which is quite interesting.

In the past I have used this link as a guide for CPU's in servers and workstations, and found that display cards don't necessarily play a huge role in the processing of video (about 20%). We have used some high end Nvidia Quadro cards in the past but found that video streams (2D) require more CPU processing to unpack the H.264 compression, and the high end cards (for 3D modelling etc) need to load the file in memory, beside the fact that quite a few features in high end cards require the software used, to 'unlock' them (such as Adobe etc). This might help to an extent, but not in the way Dual CPU's or CPU's with more cores do.

You might find that choosing CPU's carefully would allow for dramatic increases in performance. IE: - One Intel Core i7-4930 could do the load of your dual CPU machine (at a best price).

Did you use Axxon's 'Green Stream' as part of the test ? I think it's simliar to DW, in that you can use a lower quality stream, when you have split tiles over multiple camera layouts

I know that I've also (on occasion) had to record with H.264, but streamed live viewing with the MJPEG to assist with CPU loads. Perhaps it could also be nice to test.

KL
Klaus Lee
Feb 11, 2014

Great article. I am curious for the graph in this section : High End Server Viewing Performance

You mentioned the best is DW spectrum (no processor usage) but your graph shows Exacq is the best. Does your graph show a wrong legend perhaps?

Avatar
Mike Dotson
Feb 11, 2014
Formerly of Seneca • IPVMU Certified

I have been doing independent testing of VMS perfomance on hardware in our lab for a few years now and have amassed quite a bit of data on Server side AND Client side metrics. Our sales staff has access to this data.

For the server side, we have done Milestone Corporate, ONSSi CS, Genetec SC (Omnicast) and a couple of OEMs.

The server side has many peculiarities as you start to push beyond 100Mbits throughput. What happens is that the CPU bottleneck becomes less important than a bottleneck in another piece of hardware...usually the HDD or NIC paths depending on the VMS.

The Clients side are the above VMS plus Pelco Control Point.

As onserved on the Client side...the CPU is king, but one DOES have to make available a good video card for the VMSs that want to use it. The new Haswell CPUs actually do a decent job at the low levels, and if you need a bit more boost go to the K600 then the K2000 cards.

Eventually the client application itself simply can not handle the 'housekeeping' needed for a larger number of streams and slows down.

JH
John Honovich
Feb 12, 2014
IPVM

"The server side has many peculiarities as you start to push beyond 100Mbits throughput. What happens is that the CPU bottleneck becomes less important than a bottleneck in another piece of hardware...usually the HDD or NIC paths depending on the VMS."

Mike, good feedback. Thanks. That makes sense. Do you see a big variance on when/how quickly the HDD becomes a bottleneck across VMSes?

Avatar
Mike Dotson
Feb 12, 2014
Formerly of Seneca • IPVMU Certified

The way I start my testing does not lend itself to answering a 'rate' type question. I am typically starting at what we 'think' the maximum is and add/delete streams until the system is at it's highest stable point.

Other factors for the HDD are how fragmented a storage array is over time. When it is highly fragmented..the performance drops. Some VMSs more than others. Defragging helps a lot but this has to be a planned maintenence activity in a real installation.

TimR below mentions bridging NICs.... and one has to be careful here. Windows 7 does not truly aggregate 2 NICs and give you 2GB. In actual operation, I saw it simply switch from using one port to the other...thus still only getting 1GB.

To get a true 2GB capacity, one needs to define the NICs to be on different subnets. Doing this works well.

WinServer aggregates NICs differently, but I dont have test data on that since I use the different subnet method instead.

TR
Tim Russell
Feb 12, 2014

I would assume you could alleviate this by using a RAID configuration, however it would also depend on what drives you're using (but we should be talking Gb/s here and not Mb/s). IE - SATA, SAS or SSD, if you're using a Seagate Surveillance drive (SV), the read/write speed should be at least 6Gb/s.

My assumption would be that the bottleneck should be with the NIC, you could always add an extra card and Bridge the connections for more throughput.

*Correction ... I see the average data rate is 156Mb/s, up to 210Mb/s for a max sustained rate.

Avatar
Mike Dotson
Feb 12, 2014
Formerly of Seneca • IPVMU Certified

Tim... in my lab we test with RAID sets on any of our systems that we expect to support 200Mbits and beyond. Our smaller systems are the JBODs. We establish a conservative RAID5 with 4 drives even though a RAID10 with 4 drives is a better performer.... but want to be conservative. Drives are 6G SATA and/or SAS (enterprise class) depending on the VMS support. We do not see a demand for RAIDs with SSD.

Where we see SSD requests are for our mobile server since it makes sense for SSD in those environments.

VK
Vasiles Kiosses
Feb 12, 2014

I would like to clarify my own mind. When you speak of VMS, I interpret that as the video management system which encompasses any manager database and local recorders. In the tests above I am presuming its referring to the component that is actually recording the video streams.

TR
Tim Russell
Feb 12, 2014
Great feedback, thanks Mike.
RF
Robert Fuller
Feb 13, 2014

Where is the encoding being done for these VSMs? Are we getting direct streams to the cameras on live view? Is the decoding done on the client or server side side for live/recorded video?

If all of the decoding is being done on the server side that is typically where you have the lower max camera limits and higher CPU usage. I believe Exacq is 96 or 128, no matter that your server specs are. Same with Lenel OnGuard video and Prism. OnGuard video is 63 and I believe Prism is 96 or 128 total cameras.

Avatar
Mike Dotson
Feb 17, 2014
Formerly of Seneca • IPVMU Certified

Robert,

This question can only be answered with 'it depends on the VMS'. Some VMSs will not perform any encoding of the streams going out to thick remote clients while others will.

Some VMSs, like Exacq, have the Client built in to the Recording server installation, which promotes using the server as a viewstation. As observed, this Local viewing is a hit to the CPU and it is best to limit this type of viewing if you are trying to maximize the recording performance.

Additionally, one has to be careful when changing the resolution or FPS of a stream from what the Recorder is getting because this will cause the Server to transcode the stream to the requested type.

If one has a thin client (ie Web/tablet/laptop) as part of the Client infrastructure...be prepared to either limit the usage to a small number (less than 10 streams) or install this service on its own machine. This service is a BIG hit to the CPU of the machine and if it is running on the recording server, then there will be loss of data being stored because the CPU can not keep up with the 'transcoding' task and the recording task at top speed.

For systems that have just a small number of streams (say 16, or less than 100Mbits) , it is possible to size a system to be able to handle the local viewing and the recording. We do this sort of sizing in the lab for our customers that need to know what to build for the VMS that will be used.

DH
Derek Hu
Feb 15, 2014

Nice report! Just wondering if you have compare the CPU usage between single channel and dual channel memory (or even quad channel)? It should make great difference

In addition, the VMS that supports Intel media SDK should help to decrease the CPU loading whe doing video decoding

AT
Andrew Thomas
Feb 22, 2014

I'll add some real world stats to this based on our experience with Avigilon.

The following graph is pull from our N-Central Management System from Three servers at a client. Each Server is the Avigilon Branded OEM Dell R710 Server running windows xp64Bit, or Windows7 Embedded. Each server is running the Dell Perc6i, each with 6 Sata 7200K WD enterprise (black Drives) By default Avigilon Ships with a Raid5 (with spare) and they build a 75GB C: volume for the OS and the remaining RAID space is a single volume preallocated to all video...

The heavier load is about 50 JP2000 (1MP or better)Cameras 30 which are 4 sensor dome 180 or 360 domes.

the next heavier is about 25 JP2000 1/2 being Dome 180/360, and remaining are 1MP or better

the next is roughly the same as before, but has about 1/2 being H264

In the Avigilon World, Streams are counted individually. Instead the total Bandwidth is considered the MAX.

125 Cameras or (32Mbytes/Second or 256Kbits/second) is the stated maximum on this server. CPU (wmi) never exceed 50%

We know for a fact with 90 cameras, all Jp2k domes, many being dome180/360 we have seen this server configuration support 35MBytes Second, 24x7 for 6 months, prior to installing a second server and relieving the load.

3-Aviligon Servers

Our own office system is a small embedded windows 7 box with 2GB of ram, and a 750GB 2.5" WD black, and we push 80Mbits/Second across our Jp2000/and H.264 cameras....

It isn't all about CPU. In our IT support business we measure and predict reliability by watching the ratio of WMI (committed memory / maximum memory) in the servers above that value is about 20% and remains flat indefinitely.

JH
John Honovich
Feb 22, 2014
IPVM

Andrew, thanks! That's very helpful and makes sense. It looks like you are easily managing lots of cameras on these boxes.

Related, you might find this discussion interesting or be able to shed some light on it: 32 NVRs Needed For ~1000 Avigilon Cameras?

Avatar
Sergey Bystrov
Feb 25, 2014
NetworkOptix

Ethan,

How did you make sure that different clients display same megapixels per second while doing viweng client load tests comparing the cpu usage?

Avatar
James Talmage
Feb 28, 2014
IPVMU Certified

16 camera Exacq system (4x D1 analogs from an encoder - remainder are 1.3MP and 2MP) running on an Atom D510. It is playing double duty as a Ubiquiti Unifi AP manager as well. CPU load is pretty stable at 5%.

97 camera Exacq system (10x 3MP + 87x 2MP) running on a single Xeon E5-2650. It usually runs between 10 and 20% CPU.

25 camera Exacq System (5x 5MP + 3x 3MP + 17x 2MP) running on a Core i3-3240. Most cameras are dual streaming a second 2CIF stream (46 total streams). CPU is around 6%.

First. Linux FTW!

Second. It really makes me question how they come up with the recommended specs.

Avatar
Mike Dotson
Mar 03, 2014
Formerly of Seneca • IPVMU Certified

One of the challenges with performance testing is what to use as the definition of a 'load' on the system and how to report the result. Since there is no 'standard', we can all use what we think is best.

As can be seen in this discussion...there are folks who simply use 'camera count', others who refer to the Client running on the server and others who talk about throughput...and even these are a mix of 'system level' and NIC references.

Back when I started out on my VMS performance testing mission several years ago, I asked several integrators who were buying our servers what they would like to see. Their answer was a 'system throughput' value doing constant recording and a camera load was a 1Mbyte/sec D1/VGA MJPEG stream.

This combo helped them 'think' about how many cameras this was and the math was fairly straightforward since it used values that the analog folks were used to working with. I still test servers doing the recordings this way and when I introduce client operations, I use H264 streams of 2Mbit size.

Perhaps it is time that a 'defacto standard' be developed so that a comparison of system performance can be done more easily. Anyone for another 'Up To' spec? Perhaps this should be a discussion on its own?

ML
Marcus Lau
Jun 04, 2014

Hi guys,

Thanks for the informative testing report.

Just got 2 questions if I am not too late to ask about it, since it is already in June.

1) Having MD configured on camera itself and transferred the video streaming to the VMS would it reduce the CPU consumption on the high end PC compare to MD running and handle by the VMS Server itself ?

2) The resulting graph seems to show that Exacq VMS is most efficient VMS, since it shows the least CPU comsumption, am I right?

Thanks again.

RF
Robert Fuller
Jun 04, 2014

You always want to do MD on the camera side. To my understanding CPU consumption on the client side (I assume that is what you mean by PC) is determined by the architecture of the VMS software; is the decoding/encoding done on the server side or client side? I've found that 90% of salesman do not know the answer to this and the manufacturer wont always give a straight answer. If the decoding is done on the client side the client specs will be higher.

JH
John Honovich
Jun 04, 2014
IPVM

Regarding VMD location, see: Motion Detection: Camera vs. Server-Side

Marcus, as to whom was most efficient, this was not a shootout, so we are refraining from picking a 'most efficient VMS'.

MG
Michael Gombos
Jul 29, 2016

I know this is an older article, but how do you get Milestone to use keyframes only on VMD? I don't see that as an option anywhere. Is this an Enterprise and up only feature?

U
Undisclosed #1
Jul 29, 2016
IPVMU Certified

(2)