The VM specification for the single recorder test included:
The performance data collected for a single Recorder processing a load of 70 camera streams is below.
We ran the following recorders on a single node of the VxRail cluster:
The disk write bandwidth data for a single VxRail host with 3 recorders streaming a total of 210 cameras is:
Our performance testing in support of the recommendation in this Design Guide was focused on the BriefCam RESPOND real-time analytics feature (Alert Processing Service). The integration between the RESPOND functionality and the Milestone Systems VMS uses a plug-in component on the BriefCam Alert Process server and the Real-Time Streaming Protocol (RTSP) interface supplied by Milestone Systems to access video streams with the lowest latency possible.
A real-time task processing request goes through several preprocessing steps before being able to generate alerts. The BriefCam RESPOND user interface allows operators to monitor the status of real-time tasks to track how many are queued, recovering (between the queued and processing state), and actively processing alerts. We tested performance by adding requests for new real-time alert processing tasks until we began to detect that the number of queued requests was increasing but were not able to change state and enter the processing stage.
Test specification
We tested both the maximum numbers of a single-use case workload stream (face recognition or person detection in a restricted zone) plus various mixtures of the workload specifications. In all tests, the results were consistent. In this test, cameras were added until we began to see that new streams were remaining in a queued state.
The total CPU and GPU Utilization in the build-up to processing for 50 Face Recognition Cameras are as follows:
Detailed GPU utilization metrics are shown below:
The Green line in the above graph shows that the BriefCam Alert Processing Service does not perform any re-encoding of the video format that is streamed from the Milestone Systems VMS. The BriefCam Milestone Systems plug-in installed on the Processing Server knows the format of video produced by the RTSP service (H264) which is also known to the processing engine. This VMS-specific product integration reduces GPU workload and allows more resources to be used for alert processing.
The BriefCam Alert Processing Service can function as a scale-out active/active cluster by installing and configuring multiple instances of the service that run on different servers. When multiple service instances are available, a cluster mesh service detects how many service instances are running and on what machines. When new real-time alert processing tasks are requested, the request is queued using the PostgreSQL database. The service mesh then assigns tasks from the queue to available servers that are running the alert processing service.
We configured 2 VMs running the BriefCam server components to process real-time alerts. Our goal was to validate that the total number of streams processed would be allocated evenly among the cluster nodes. The maximum number of streams processed during the cluster test was 80, There was no request queuing at that level of workload consistent with the finding that the single server maximum is 50 streams shown above.
We added new camera streams to the workload in groups of 10 with a several-minute pause in between to verify that all streams were in processing mode before proceeding. The table below shows the comparison of resource utilization for the two load-balanced Alert Processing servers.
CPU % utilization | GPU % utilization | GPU video decoding % utilization | |||||||
Min | Avg | Max | Min | Avg | Max | Min | Avg | Max | |
BC63-SVR-3 | 66 | 75 | 88 | 75 | 81 | 84 | 13 | 37 | 71 |
BC63-SVR-4 | 62 | 75 | 88 | 60 | 71 | 78 | 18 | 45 | 80 |
The Ipsotek alert processing testing contained a mixture of Face Recognition and Restricted Zone camera simulation scenarios. The Ipsotek platform supports multiple tracking modes that can be configured for a camera:
A "Face in Watchlist" rule was created to generate a report for people identified from a camera stream and on a watchlist. We used this watch list scenario for all Face Detection camera processing. In addition, an "In Zone" rule was created to detect people entering a restricted zone.
Ipsotek uses the Nvidia GPU encoder to reencode the video received from different cameras and generate synchronized video with I-Frames produced every second at a fixed bit rate. This allows Ipsotek to:
We tested both the maximum numbers of a single-use case workload stream (face recognition vs person detection in a restricted zone) plus various mixtures of the workload specifications. In all tests, the results were consistent. Cameras were added until the max of 30 cameras were active and no more could be processed.
The total CPU and GPU Utilization in the build-up to processing for 30 Face Recognition Cameras are as follows:
The breakdown of GPU utilization is as follows:
The Ipsotek platform does not currently support vGPUs, so all GPU resources must be assigned to the VM as a passthrough device. This means that it is not possible to migrate VMs as was shown in High availability validation. To build a viable Ipsotek cluster in a virtualized environment, it is necessary to provision all Ipsotek Processing nodes at system setup time. The goal is then to load the system so that sufficient capacity exists across the cluster to ensure that during a failover the cameras can migrate to an available node and continue processing.
In this testing, the approach was to load four of the five nodes in the cluster to their maximum. This ensures that there is sufficient capacity to disperse the workload across the cluster in a failure scenario. A total of 60 Face Recognition Cameras and 60 Restricted zone cameras were enabled.
The maximum count of active cameras across three processing nodes was 120.
The purpose of this test was to validate if a combination of three applications from three different vendors can share a common platform using VxRail and VMware without introducing processing delays. We have the individual application results from above for our baseline. Our performance data for this test was collected while the following workloads were processed in parallel.
A total of 840 cameras are being recorded in Milestone XProtect.
200 BriefCam real-time alert processing tasks analyzing camera streams from the Milestone Real-Time Streaming Protocol (RTSP).
120 Ipsotek Face Recognition and Restricted Zone tasks analyzing camera streams from Milestone XProtect using RTSP.
The following chart shows a snapshot of the CPU utilization of the DRS cluster at a point in time: during the full system testing.
When the full system load test with 840 cameras was running, the top 10 most active VMs were identified by CPU MHz consumption.
The following charts shows those top 10 busiest VMs in the cluster: