Системные требования¶
Для расчета характеристик серверов FindFace Security используйте приведенные ниже системные требования.
Совет
Сначала обязательно ознакомьтесь с архитектурой FindFace Security.
В этой главе:
Базовая конфигурация¶
Важно
Если разрешение используемой камеры превышает 1280x720 пикселей, настоятельно рекомендуется использовать пакет с ускорением на GPU findface-video-worker-gpu.
Важно
Детектор живых лиц можно включить только в видеодетекторе лиц на основе GPU findface-video-worker-gpu.
| Минимальная | Рекомендуемая | |
|---|---|---|
| CPU | Intel Core i5 CPU с 4-мя физическими ядрами 2.8 ГГц | Intel Xeon E5v3 с 6-ю физическими ядрами, лучший или похожий процессор | 
| На собственные нужды FindFace Security требуется 2 ядра HT > 2.5 ГГц. Характеристики также зависит от количества камер. Для одной камеры 720p@25FPSтребуется 2 ядра >2.5 ГГц. Поддержка AVX | ||
| GPU (опционально) | Nvidia Geforce® GTX 980 4 Гб | Nvidia Geforce® GTX 1080+ с 8+ Гб RAM | 
| Поддерживаемые серии: GeForce (Maxwell, Pascal, Turing и выше), Tesla (Maxwell, Pascal, Volta v100, Turing и выше) | ||
| RAM | 10 Гб | 16+ Гб | 
| На собственные нужды FindFace Security требуется 8 Гб. Потребление памяти также зависит от количества камер. Для одной камеры 720p@25FPSтребуется 2 ГБ RAM | ||
| HDD | 16 Гб | 16+ Гб | 
| На собственные нужды операционной системы и FindFace Security требуется 15 ГБ. Суммарный объем определяется в зависимости от требуемой глубины архива событий в базе данных и в логе из расчета 1.5 Мб на 1 событие | ||
| Оперативная система | Ubuntu 16.04 только x64 | |
Совет
Для более точного подбора оборудования ознакомьтесь с результатами тестирования потребления ресурсов и производительности FindFace Security.
Результаты тестирования производительности¶
Здесь вы можете ознакомиться с результатами тестов потребления ресурсов и производительности FindFace Security. Используйте эти данные для выбора оптимальной конфигурации оборудования.
Примечание
Потребление памяти и производительность могут незначительно отличаться от теста к тесту.
Предупреждение
Настоятельно не рекомендуется использовать для работы face/elderberry_160.
Параметры тестирования¶
Версии пакетов:
- findface-extraction-api-cpu 2.6.999.1910+261.gebb8df6
- findface-extraction-api-gpu
- findface-video-worker 2.6.999.1910+261.gebb8df6
- findface-video-worker-gpu
- findface-tarantool-server 2.6.999.1910+261.gebb8df6
Оборудование:
- Процессор: Intel Core i5-8400 @ 3.60 ГГц (6 ядер)
- Материнская плата: ASUS PRIME H370M-PLUS
- Память: 2 x 8192 Mб DDR4-2400 МГц
- Графика: Gigabyte NVIDIA GeForce GTX 1060 6 Гб
ПО:
- ОС: Ubuntu 16.04, Kernel: 4.15.0-29-generic (x86_64)
- Разрешение экрана: 1920x1200
Потребление памяти рассчитывалось следующим образом:
- CPU: htop;
- GPU: nvidia-smi
Производительность CPU:
sysbench 0.4.12:  multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 10000
Test execution summary:
    total time:                          9.1128s
    total number of events:              10000
    total time taken by event execution: 9.1112
    per-request statistics:
         min:                                  0.82ms
         avg:                                  0.91ms
         max:                                  1.47ms
         approx.  95 percentile:               1.02ms
Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   9.1112/0.00
Производительность GPU:
Unigine Heaven 4.0:
    pts/unigine-heaven-1.6.4 [Resolution: 1920 x 1080 - Mode: Windowed - Renderer: OpenGL]
    Test 1 of 2
    Estimated Trial Run Count:    3
    Estimated Test Run-Time:      15 Minutes
    Estimated Time To Completion: 29 Minutes
        Started Run 1 @ 17:54:37
        Started Run 2 @ 17:59:15
        Started Run 3 @ 18:03:52  [Std. Dev: 0.29%]
    Test Results:
        86.6473
        86.1475
        86.4553
    Average: 86.42 Frames Per Second
Unigine Heaven 4.0:
    pts/unigine-heaven-1.6.4 [Resolution: 1920 x 1080 - Mode: Fullscreen - Renderer: OpenGL]
    Test 2 of 2
    Estimated Trial Run Count:    3
    Estimated Time To Completion: 15 Minutes
        Started Run 1 @ 18:08:33
        Started Run 2 @ 18:13:09
        Started Run 3 @ 18:17:45  [Std. Dev: 1.37%]
    Test Results:
        87.7017
        89.5186
        90.023
    Average: 89.08 Frames Per Second
Потребление ресурсов: findface-extraction-api и findface-extraction-api-gpu¶
Использование RAM: findface-extraction-api
| Модель | № экземпляров | RAM, Мб | № экземпляров | RAM, Мб | № экземпляров | RAM, Мб | 
|---|---|---|---|---|---|---|
| face/elderberry_576.cpu | 1 | 3730 | 2 | 7450 | 3 | 11000 | 
| face/elderberry_160.cpu | 1590 | 2800 | 4050 | |||
| face/elderberry_576.cpu + features (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 5568 | 10800 | ||||
| face/elderberry_160.cpu + features (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 3473 | 6250 | 9400 | |||
| Только атрибуты лиц (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 2270 | 3900 | 5800 | 
Использование RAM: findface-extraction-api-gpu
Примечание
findface-extraction-api-gpu поддерживает использование только 1-го экземпляра модели.
| Модель | RAM, Мб | 
|---|---|
| face/elderberry_576.gpu | ~2200 ( до 4.5 Гб на этапе инициализации) | 
| face/elderberry_160.gpu | ~850 (до 1.8 Гб на этапе инициализации) | 
| face/elderberry_576.gpu + features (faceattr/age.v1.gpu, faceattr/beard.v0.gpu, faceattr/emotions.v1.gpu, faceattr/gender.v2.gpu, faceattr/glasses3.v0.gpu) | ~3100 (до 6.3 Гб на этапе инициализации) | 
| face/elderberry_160.gpu + features (faceattr/age.v1.gpu, faceattr/beard.v0.gpu, faceattr/emotions.v1.gpu, faceattr/gender.v2.gpu, faceattr/glasses3.v0.gpu) | ~1871 (до 4 Гб на этапе инициализации) | 
| Только атрибуты (faceattr/age.v1.gpu, faceattr/beard.v0.gpu, faceattr/emotions.v1.gpu, faceattr/gender.v2.gpu, faceattr/glasses3.v0.gpu) | 1200 | 
Производительность: findface-extraction-api и findface-extraction-api-gpu¶
Скорость: findface-extraction-api
| Модель | Время, мс (i5-8400) | 
|---|---|
| face/elderberry_576.cpu | 620 | 
| face/elderberry_160.cpu | 350 | 
| face/elderberry_576.cpu + features (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 655 | 
| face/elderberry_160.cpu + features (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 380 | 
| Только атрибуты лиц (faceattr/age.v1.cpu, faceattr/beard.v0.cpu, faceattr/emotions.v1.cpu, faceattr/gender.v2.cpu, faceattr/glasses3.v0.cpu) | 300 | 
Скорость: findface-extraction-api-gpu
| Модель | Время, мс (1060TI) | 
|---|---|
| face/elderberry_576.gpu | 240 | 
| face/elderberry_160.gpu | 225 | 
| face/elderberry_576.gpu + features (faceattr/age.v1.gpu, faceattr/beard.v0.gpu, faceattr/emotions.v1.gpu, faceattr/gender.v2.gpu, faceattr/glasses3.v0.gpu) | 260 | 
| face/elderberry_160.gpu + features (faceattr/age.v1.gpu, faceattr/beard.v0.gpu, faceattr/emotions.v1.gpu, faceattr/gender.v2.gpu, faceattr/glasses3.v0.gpu) | 235 | 
Производительность: findface-video-worker-cpu и findface-video-worker-gpu¶
Потребление памяти и скорость на CPU: findface-video-worker-cpu
| Поток | RAM, Мб | Использование CPU,% (i5-8400 6 ядер) | Скорость обработки, FPS* (i5-8400) | 
|---|---|---|---|
| 1x 720p25FPS | 370 | 230 | 62 | 
| 2x 720p25FPS | 755 | 500 | 56 | 
| 3x 720p25FPS | 1040 | 580 | 45 | 
| 4x 720p25FPS | 1437 | 600 | 36 | 
| 5x 720p25FPS | 1900 | 600 | 24 | 
| 8x 720p25FPS | 2650 | 600 | 18 | 
| 1x 1080p25FPS | 502 | 250 | 41 | 
| 2x 1080p25FPS | 1023 | 508 | 37 | 
| 3x 1080p25FPS | 1529 | 590 | 30 | 
| 4x 1080p25FPS | 2031 | 594 | 23 | 
| 1x 720p25FPS + 1x 1080p25FPS | 890 | 453 | 38 | 
| 2x 720p25FPS + 2x 1080p25FPS | 1750 | 590 | 21 | 
Важно
Если скорость обработки видеоизображения меньше частоты кадров, это означает, что системе не хватает ресурсов, в связи с чем видеодетектор лиц пропускает кадры. Избегайте данной ситуации, поскольку она может привести к пропускам лиц, нестабильной работе и возможным сбоям.
Для проверки потребления ресурсов выполните команду:
sudo journalctl -f -a -u findface-video-worker-cpu | grep dropped
Следующие строки в результате указывают на то, что ресурсов не хватает:
findface-video-worker[28882]: [2] 2 frames dropped!
findface-video-worker[28882]: [1] 6 frames dropped!
В этом случае рассмотрите возможность изменения настроек компонента или конфигурации оборудования.
Потребление памяти и скорость на GPU: findface-video-worker-gpu
| Поток | GPU RAM, Мб | Скорость обработки, FPS* (1060TI) | 
|---|---|---|
| Без потоков | 600 | |
| 1x 720p25FPS | 656 | 254 | 
| 2x 720p25FPS | 738 | 126 | 
| 4x 720p25FPS | 858 | 63 | 
| 8x 720p25FPS | 1117 | 30 | 
| 1x 1080p25FPS | 735 | 202 | 
| 2x 1080p25FPS | 935 | 96 | 
| 4x 1080p25FPS | 1185 | 48 | 
| 8x 1080p25FPS | 2650 | 48 | 
| 1x 720p25FPS + 1x 1080p25FPS | 803 | 453 | 
| 2x 720p25FPS + 2x 1080p25FPS | 1100 | 54 | 
| 4x 720p25FPS + 4x 1080p25FPS | 1500 | 26 | 
| 8x 720p25FPS + 8x 1080p25FPS | 2300 | 11 | 
Важно
Если скорость обработки видео меньше частоты кадров, это означает, что системе не хватает ресурсов, в результате чего кадры скапливаются в памяти видеокарты. Избегайте данной ситуации, поскольку она может привести к нестабильности и возможным сбоям в работе.
Для того чтобы узнать текущую скорость обработки, выполните следующую команду в консоли findface-video-manager:
curl -s http://127.0.0.1:18810/jobs | jq -r '.[]|("id="+(.id|tostring)+" url="+.stream_url+" FPS="+(.statistic.processing_fps|tostring))'
В ответе вы найдете, с какой скоростью в настоящий момент обрабатывается каждый видеопоток. Например, если ресурсов при обработке 7 видеопотоков с характеристиками h264 (High) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709), 1920x1080, 25 fps, 25 tbr, 90k tbn, 180k tbc достаточно, вы увидите следующий результат:
id=10 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.189745
id=5 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.189854
id=6 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.589714
id=3 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.189857
id=4 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.189857
id=7 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.389784
id=9 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=27.189857
Недостаток ресурсов при обработке 8 видеопотоков с аналогичными характеристиками приведет к тому, что частота обработки будет меньше частоты видеоизображения (25 fps):
id=8 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.772333
id=10 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.772415
id=5 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.772339
id=6 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.372803
id=3 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.772339
id=4 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=23.772339
id=7 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.775822
id=9 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=22.573729
Еще меньшие значения скорости будут зарегистрированы при обработке 10 видеопотоков с такими же характеристиками:
id=7 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380642
id=9 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380642
id=2 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380646
id=8 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380642
id=10 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=9.984919e-05
id=5 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380642
id=6 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380642
id=1 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.380651
id=3 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=20.180836
id=4 url=http://restreamer.int.ntl/hls/openspace.m3u8 FPS=19.581406
Важно
Если видеодетектор лиц на базе GPU обрабатывает потоки с одинаковым разрешением, количество потоков не сильно влияет на потребление памяти GPU, поскольку все они обрабатываются одним обработчиком. В противоположность этому, потребление памяти значительно возрастает при обработке потоков с разными разрешениями, поскольку на каждое разрешение выделяется отдельный обработчик.
Примеры конфигурации оборудования¶
Важно
Конфигурации оборудования в данном разделе приведены только для справки. Не используйте их для подбора конфигурации своей системы. Для выбора оптимальной конфигурации обратитесь за советом к нашим специалистам по адресу support@ntechlab.com.
Потребление ресурсов может отличаться в зависимости от следующих факторов:
- Частота HTTP-запросов, отправляемых в сервис findface-extraction-api(зависит от количества лиц в поле зрения камеры, числа поисковых запросов пользователей и т. д.).
- Качество видеоизображения (видео с помехами, пестрое видео потребляют больше ресурсов).
- Интенсивность движения в кадре.
Следующие примеры приведены для стандартной конфигурации компонентов.
Важно
Изменение некоторых параметров компонентов может значительно повлиять на потребление ресурсов.
Сервер на CPU¶
| Камеры | CPU | RAM, Гб | Извлечение | 
|---|---|---|---|
| 1x720p25FPS | Intel Core i5 - 6400 (4 ядра 2700 МГц) | 8 | elderberry_160 + атрибуты* model_instances = 1 или elderberry_576 model_instances = 1 | 
| 2x720p25FPS | минимальная: Intel Core i7 - 6700 (4 ядра 3400 МГц); рекомендуемая: Intel Core i7 - 6850K (6 ядер 3600 МГц) | 12 | elderberry_160 + атрибуты* model_instances = 2 или elderberry_576 + атрибуты* model_instances = 2 | 
| 4x720p25FPS | минимальная: Intel Core i7 - 8700K (6 ядер 3700 МГц); рекомендуемая: Intel Core i9 - 9900K (8 ядер 3600 МГц) | 16 | elderberry_576 + атрибуты* model_instances = 2 или elderberry_576 model_instances = 3 | 
| 1x1080p25FPS | минимальная: Intel Core i7 - 6700 (4 cores 3400 МГц); рекомендуемая: Intel Core i7 - 6850K (6 ядер 3600 МГц) | 32 | elderberry_576 + атрибуты* model_instances = 1 или elderberry_576 model_instances = 2 | 
Сервер на GPU¶
| Камеры | CPU | RAM, Гб | GPU | Установка | Извлечение | Видео | 
|---|---|---|---|---|---|---|
| 1x720p25FPS | Intel Core i5 - 6400 (4 ядра 2700 МГц) | 8 | nVidia GeForce GTX1060 6 Гб | extraction-api на CPU video-worker на GPU | elderberry_160 + атрибуты* model_instances = 1 или elderberry_576.cpu model_instances = 1 | базовая конфигурация | 
| extraction-api на GPU video-worker на CPU | базовая конфигурация | базовая конфигурация | ||||
| 2x720p25FPS | Intel Core i5 - 6400 (4 ядра 2700 МГц) | 12 | nVidia GeForce GTX1060 6 Гб | extraction-api на CPU video-worker на GPU | elderberry_160 + атрибуты* model_instances = 2 или elderberry_576.cpu + атрибуты model_instances = 1 или elderberry_576.cpu model_instances = 2 | базовая конфигурация | 
| extraction-api на GPU video-worker на CPU | базовая конфигурация | базовая конфигурация | ||||
| 4x720p25FPS | Intel Core i5 - 8400 (4 ядра 2800 МГц) | 16 | nVidia GeForce GTX1060 6 Гб | extraction-api на CPU video-worker на GPU | elderberry_576.cpu + атрибуты* model_instances = 2 | базовая конфигурация | 
| 8x720p25FPS | Intel Core i5 - 8400 (4 ядер 2800MHz) Intel Core i7 - 6700 (4 ядер 3400MHz) | 16 | nVidia GeForce GTX1060 TI 6 Гб | extraction-api на CPU video-worker на GPU | elderberry_576.cpu + атрибуты* model_instances = 2 | базовая конфигурация | 
| 16x720p25FPS | Intel Core i7 - 6700 (4 ядра 3400MHz) Intel Core i7 - 8700K (6 ядер 3700MHz) Intel Core i9 - 9900K (8 ядер 3600MHz) | 32 | 2x nVidia GeForce GTX1060 TI 6 Гб | extraction-api на CPU video-worker на GPU | elderberry_576.cpu + атрибуты* model_instances = 4 или | базовая конфигурация |