Appendix C – EC2 performance

Milestone XProtect VMS is a Windows workload with high to extreme demands on data throughput and compute resources for video decoding. As discussed in the section XProtect on AWS, XProtect VMS application is made up of different Windows services, where the recording server service is the most critical service to dimension correctly from a compute, network and storage perspective.

The scaling of recording service is constrained by two primary resources:

  • Data throughput, which is dependent on the number of connected cameras, the bandwidth of the video streams from these cameras and the degree of recording and archiving.

  • Compute resources for decoding of streamed video formats such as H.264, which is needed when applying server-side video motion detection (VMD) analysis. XProtect VMS can utilize GPU resources available with some EC2 instance families.

The recording server performance is also determined by the performance of the storage used for media and archive databases. The throughput and IOPS performance can influence the scaling of the recording server, for more information about storage performance, refer to: Appendix D – Media storage dimensioning.

In this appendix we discuss Milestones recommendations with regards to EC2 dimensioning.

AWS EC2 recommendations

Leading up to the publication of the XProtect on AWS, Milestone has done extensive large-scale performance testing in differ instance families and instance types, including the t3, m5, m5a, c5, g3s, g4dn and i3 families.

The primary purpose of these tests has been to provide system integrators and end-customers with guidance on which EC2 instance type to deploy the XProtect CloudFormation on. Based on this testing, Milestone recommends the EC2 instance types presented in Table 4.

 

DEGREE OF RECORDING

RECOMMENDED MAX. AVG.. CPU LOAD

INSTANCE TYPE

100%

50%

25%

10%

t3.large

7

7

8

8

35%

c5.large

16

17

17

18

50%

c5.xlarge

36

38

39

40

50%

c5.2xlarge

92

94

95

96

70%

g4dn.xlarge

97

106

110

113

50%

g4dn.2xlarge

133

242

268

275

70%

g4dn.4xlarge

427

468

480

480

70%

Table 4. Validated maximum cameras per XProtect recording server, for recommended EC2 instance. Measurements are based on H.264 video streams with 1080p resolution and 30 FPS, with a constant throughput of 4,0 Mbps per camera. Server-side VMD is applied on all streams and all recordings are archived to AWS FSx storage.

1

To help system integrators and end-customers select the most optimal compute-infrastructure for their XProtect deployment. Figure 17 presents the price performance ratio for the recommended EC2 instance types listed in Table 4. The dark blue line and the gray line lists the annual cost per camera for US East (N. Virginia) and Europe (Ireland), respectively at maximum recommended utilization, at 25% recording, and archiving to AWS FSx storage.

Figure 17. Price-performance ration of recommended EC2 instances for deployments with H.264 video streams with 1080p resolution and 30 FPS, with a constant throughput of 4,0 Mbps per camera. Server-side VMD is applied on all streams, with 25% recording, and archiving to AWS FSx storage.

Impact of Video Motion Detection

Video motion detection conducted on the server-side by the XProtect recording server represents a significant part of the load on the compute resources available on the allocated EC2. The load caused by the VMD decoding and analysis can represent as much as 80% of the overall CPU load on EC2 instances with no GPU resources, or when using XProtect product variants not supporting GPU based decoding (i.e. XProtect Express+ or XProtect Professional+).

Milestone therefore recommends the XProtect Expert or XProtect Corporate VMS product variants and GPU enabled instance EC2 instance types, where the g4dn family has been verified by Milestone.

If no server side VMD is to be applied, smaller and non-GPU enabled EC2 instance types can be considered.