Test results
Load testing
Load testing helps evaluate the quality and speed of OMNI Platform operation under a certain load at a given time interval. A test image used is 240 KB (512х512 px) png image.
Test machine specification
CPU | RAM | SSD |
| 128 GB DDR4 2400 ECC | Samsung EVO 870 500 GB |
Metrics
Metric Name | Description |
Users | Number of parallel requests |
Num threads | Number of CPU threads in use |
RPS | Number of requests processed per second |
(50%, 60%, ...) 50th, 60th, ... percentile | % of requests are completed in no more than this time, in ms |
Max | Maximum time to process 1 request, in ms |
Avg | Average time to process 1 request, in ms |
Basic load test
Test conditions
- Face recognition method: 12v1000
- ipvs: enabled
- Database size: two mln profiles
- Scalability: load testing of OMNI Platform 1.21.3 uses the following scaling settings:
- image-api-age-estimator-dep: 5 instances, 2 workers each
- image-api-emotion-estimator-dep: 5 instances, 2 workers each
- image-api-gender-estimator-dep: 5 instances, 2 workers each
- image-api-face-detector-liveness-estimator-dep: 5 instances, 2 workers each
- image-api-mask-estimator-dep: 5 instances, 2 workers each
- image-api-face-detector-template-extractor-dep: 8 instances, 2 workers each
- image-api-face-detector-face-fitter-dep: 5 instances, 2 workers each
- image-api-quality-assessment-estimator-dep: 5 instances, 2 workers each
- image-api-template-extractor-dep: 5 instances, 2 workers each
- image-api-verify-matcher-dep: 5 instances, 2 workers each
- other services: 1 instance for each service
Test results
Request* | Users | Num_threads | RPS | Avg | Min | Max |
create_profile (create a profile from a face image) | 1 | 1 | 1.05 | 952 | 901 | 1093 |
16 | 1 | 14.16 | 1129 | 997 | 2313 | |
detect (detect a face and estimate facial attributes from a face image) | 1 | 1 | 1.10 | 906 | 862 | 1044 |
16 | 1 | 14.88 | 1074 | 950 | 2372 | |
profiles (get a list of created profiles) | 1 | 1 | 7.78 | 128 | 98 | 279 |
230 | 1 | 243.23 | 923 | 262 | 4606 | |
search (search a face in the database by image) | 1 | 1 | 1.16 | 859 | 815 | 1026 |
16 | 1 | 16.60 | 963 | 905 | 2148 | |
search_by_ sample_id (search a face in the database by sample ID) | 1 | 1 | 17.34 | 58 | 45 | 1121 |
70 | 1 | 45.72 | 1529 | 170 | 1938 | |
verify (compare a face image with a sample to determine if they belong to the same person) | 1 | 1 | 1.09 | 916 | 869 | 1083 |
16 | 1 | 14.65 | 1091 | 973 | 2421 | |
verify_by_ sample_id (compare two samples to determine if they belong to the same person) | 1 | 1 | 41.76 | 24 | 19 | 168 |
260 | 1 | 455.73 | 565 | 73 | 1128 |
/* Detailed information on the API requests specified in the table can be found in API Reference.
Load test for receiving events/activities from cameras
Check type | Avg (ms) | Min (ms) | Max (ms) | RPS |
Receiving events | 5001 | 156 | 26882 | 24.8 |
Receiving activities | 1372 | 349 | 6169 | 66.5 |
CONCLUSIONS
During the test, OMNI Platform successfully processes the activity reception load at a rate of 1800 activities/sec (300 cameras are connected to OMNI Platform, each of which sends activities at a rate of 6 activities/sec).
The event reception load is processed at a rate of 200 events/sec (200 cameras are connected to OMNI Platform, each of which sends events at a rate of 1 event/sec).