> Markdown-версия страницы https://yucca.app/docs/guides/SystemRequirements/HardwareSelection/. Оглавление документации — [llms.txt](https://yucca.app/llms.txt), весь текст одним файлом — [llms-full.txt](https://yucca.app/llms-full.txt). Markdown-версия есть у любой страницы: добавьте `.md` к адресу без слеша на конце.

# Выбор аппаратного обеспечения

*29.12.2022*

## Вступление

**Как запустить 200+ камер на сервере за 30.000 рублей?**

[![grafana_node](/assets/images/grafana_node-d27ad7b86db4b45f0d685d1bbe9634d7.png)](https://yucca.app/assets/files/grafana_node-d27ad7b86db4b45f0d685d1bbe9634d7.png)

Нас часто спрашивают, а сколько камер можно добавить в Yucca на сервере с моими аппаратными ресурсам? Вопрос всегда индивидуальный и ответить на него шаблонно для всех невозможно. Многое зависит от типа камер, битрейта, процессора и прочих переменных. Поэтому мы решили собрать небольшую статистику с сервера одного из наших клиентов, со скриншотами и подробными пояснениями, чтобы каждый мог представить сколько ресурсов нужно в конкретно его случае...

Похожую статистику мы публиковали про запуск на [**Raspberry Pi 4**](https://yucca.app/docs/guides/SystemRequirements/RunOnRaspberryPi4.md)

## Наша инсталляция

И так установлена Юкка версии *0.7.2*, и подключено *154 камеры*, почти 4 года глубина архива, битрейт потока с камер в районе 1M (мегабит в секунду). Помимо Юкки, на этом же сервере установлен postgresql, собственно как база данных.

[![ycc_main](/assets/images/ycc_main-fe4cfa1cb9478974fb654b18ab38a7ca.png)](https://yucca.app/assets/files/ycc_main-fe4cfa1cb9478974fb654b18ab38a7ca.png) [![ycc_admin](/assets/images/ycc_admin-5984fce82a6d189c4a7c4c67f3c7d10a.png)](https://yucca.app/assets/files/ycc_admin-5984fce82a6d189c4a7c4c67f3c7d10a.png) [![grafana_ycc](/assets/images/grafana_ycc-f5a07d5860e43d0638a173dd2f7a628d.png)](https://yucca.app/assets/files/grafana_ycc-f5a07d5860e43d0638a173dd2f7a628d.png) (Если хотите такой же дашборд, инструкция доступна по [ссылке](https://gitlab.com/yuccastream/public/monitoring))

Какие же под это всё используются ресурсы и сколько их утилизируется?

## Материнская плата (Motherboard)

[**Z8NR-D12**](https://www.asus.com/ru/Commercial-Servers-Workstations/Z8NRD12/) - это очень старое шасси, купить такое на вторичном рынке можно примерно за 20.000 рублей.

[![motherboard](/assets/images/motherboard-2cc5ca2b93335ea5ea701dc849f5b6fc.png)](https://yucca.app/assets/files/motherboard-2cc5ca2b93335ea5ea701dc849f5b6fc.png) *скриншот с сайта одно из известных нам спотов*

В этом варианте, пожалуй, не хватает 2х блоков питания, но можно поискать аналогичные шасси к примеру от Supermicro.

## Процессор (CPU)

[**Intel(R) Xeon(R) CPU X5690 @ 3.47GHz**](https://www.intel.com/content/www/us/en/products/sku/52576/intel-xeon-processor-x5690-12m-cache-3-46-ghz-6-40-gts-intel-qpi/specifications.html) - 2 процессора по 12 потоков, в сумме получается 24. На Авито такой можно купить за 3000 рублей за штуку.

CPU - один из важнейших ресурсов, именно в него вы всегда будете упираться при увеличении количества потоков. Ведь чем больше потоков, тем больше процессов и тем больше нам нужно процессорного времени. Соответственно больше всего внимания нужно уделять даже не утилизации, как на 1 скриншоте, а LA или Load Average (если вы не знаете что это такое, то читайте [тут](https://www.google.com/search?q=%D1%87%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+load+average+linux&oq=Xnj+nfrjt+Load+Avarage)) 2 скриншот.

И так посмотрим на утилизацию за 24 часа, тут есть пики, но средняя утилизация в районе 30% [![cpu_util](/assets/images/cpu_util-a1dd5a6973421bf516a05a641fbcbf8e.png)](https://yucca.app/assets/files/cpu_util-a1dd5a6973421bf516a05a641fbcbf8e.png)

На графике LA за сутки ситуация похожая, в районе 30% - 40% [![cpu_la](/assets/images/cpu_la-7513684d5d0e123bd0a27c79d3326cdc.png)](https://yucca.app/assets/files/cpu_la-7513684d5d0e123bd0a27c79d3326cdc.png)

Помним, что это показатель на 150 камер, значит заполнен сервер примерно наполовину и в теории можно добавить еще столько же камер, при условии, что камеры имеют схожий битрейт.

Мы не рекомендуем добавлять камеры на серверы, где LA уже выше единицы. При LA > 1 - это значит что очередь будет всё время расти и проблемы с обслуживанием и деградация почти неизбежны, нужно или больше процессора или ещё 1 сервер Юкки. Поэтому при большом количестве клиентов и камер в первую очередь всегда отрисовывайте ваши инсталляции на мониторинге и следите за показателями.

## Оперативная память (RAM)

**9965447-034.A00LF** - серверная ECC память на Авито около 1000 рублей за плату.

В нашем случае 16 гигабайт (по 8 на сокет процессора) - хватает с 3-ым запасом и утилизируется в районе 4 гигабайт.

[![grafana_ram](/assets/images/grafana_ram-2d7a9cbf32a35e663f316342c5bb507f.png)](https://yucca.app/assets/files/grafana_ram-2d7a9cbf32a35e663f316342c5bb507f.png)

## Диск

Дисковый массив - тема требующая отдельной заметки о том как делают и как не стоит делать, я расскажу как примерно рассчитать прогнозируемый объём вручную, но вы всегда можете найти онлайн калькулятор под ваш битрейт и тип массива.

Итак, на данном стенде наш клиент размещает только публичные камеры и неожиданная потеря архива с этих камер ему не критична. Поэтому если ваш архив имеет большую ценность, то **не делайте так**, как тут описано.

**ST10000VN0004-1Z** - Seagate IronWolf 10Tb NAS.<br />4 штуки в конфигурации **Raid0** дают *37 терабайт*, стоимость в районе 20.000 рублей за штуку.

```sh
$ df -h | grep yucca
/dev/md0            37T          15T   20T           43% /opt/yucca/data/alloc

$ cat /etc/mdadm/mdadm.conf 
DEVICE partitions
ARRAY /dev/md0 level=raid0 num-devices=4 metadata=1.2 name=yucca:0 UUID=xxx


```

Конечно за счёт того, что это Raid0, мы не испытываем вообще никаких проблем с производительностью, при записи архива параллельно с 150 камер, да и с 300 проблем не будет, но и отказоустойчивость на нуле, так что тут каждый выбирает решение для себя сам.

### Как посчитать сколько нужно места под архив

Предположим, что у нас есть 150 одинаковых камер с битрейтом потока в 2M, с них мы хотим писать архив глубиной в 14 дней:

* 2 мегабита в секунду, это 2/8 = 0,25 мегабайта
* 0.25 \* 60 \* 60 = 900 мегабайт в час
* 900 \* 24 = 21600 мегабайт => 21,6 гигабайт в сутки с 1 камеры
* 21,6 \* 14(дней) = 302,4 гигабайт за 14 дней с 1 камеры
* 302,4 \* 150 = 45360 гигабайт => 45,36 терабайт

Вот такая простая калькуляция позволяет примерно посчитать сколько будет занимать наш архив. Также стоит учесть, что массивы не стоит заполнять под завязку в 99% и хотя бы 5-10% лучше держать свободным.

## Выводы

Итак, мы имеем *шасси + процессоры + оперативная память* примерно за 30.000 рублей и дисковый массив за 40.000. Итого около 70.000 рублей за полноценное рабочее решение с возможностью продавать и оказывать услуги клиентам с ёмкостью под 300 камер.

*Немного пофантазируем...<br />Лицензия на Yucca стоит 4000 рублей в месяц и мы не имеем лимитов на камеры, если у вас есть современное шасси и 10000 камер, мы вас не ограничиваем :) Средний тариф на камеру с архивом в 14 дней у провайдеров сейчас стоит \~ 500-700 рублей в месяц, то есть 150.000 рублей в месяц можно зарабатывать на таком сервере без особых затрат с окупаемостью в 1 месяц, правда если у вас уже есть 300 готовых клиентов* 🙂

Спасибо всем, кто дочитал до конца!<br />Задать вопрос можно через формы обратной связи на [сайте](https://yucca.app/ru#contact), написав на почту <info@yucca.app> или в [Telegram-чате](https://t.me/yuccastream) сообщества.
