Обновлено: 21.03.2026 в 11:48:56
UniFi - Настройка приложения Network для большого количества устройств UniFi
Эта статья применима только для опытных пользователей, запускающих сервер UniFi Network на своих собственных машинах Windows/macOS/Linux, чтобы помочь диагностировать и оптимизировать самостоятельно размещенные серверы UniFi Network, работающие под высокой нагрузкой. Мы обычно рекомендуем добавить UniFi Console для наиболее простого и масштабируемого опыта.
Следующие настройки содержатся в файле system.properties вашего приложения UniFi Network, который находится в папке \Ubiquiti UniFi\data установки. Если параметра еще нет в файле, его можно добавить как новую строку.
Примечания и требования:
- Убедитесь, что вы используете последнюю версию UniFi Network, доступную здесь.
- Эта статья описывает расширенные параметры конфигурации, и следует предпринимать их только опытным пользователям.
- Создайте резервную копию перед выполнением инструкций в этой статье. Подробнее см. UniFi - Резервные копии и миграция.
При самостоятельном размещении сервера UniFi Network необходимо соблюдать осторожность, если подключены сотни устройств UniFi на нескольких площадках. Эта повышенная системная нагрузка может привести к снижению производительности, если определенные моменты не оптимизированы.
Симптом: Высокая загрузка ЦП
Одним из самых важных показателей для мониторинга является использование ЦП сервером UniFi Network. Высокая загрузка ЦП — первый признак наличия проблемы. К сожалению, простого решения для этого нет, и простое увеличение ЦП не всегда является ответом.
Выделение дополнительной памяти
Прежде чем увеличивать выделение оперативной памяти на вашей машине, сначала попробуйте увеличить параметры `XMX` и `XMS`. По умолчанию приложение UniFi Network имеет эти значения, установленные на 1 ГБ. Следующие строки устанавливают xmx и xms на значения 2 ГБ (2048 МБ):
unifi.xmx=2048 unifi.xms=2048
Вышеуказанные изменения увеличат объем памяти, который разрешено потреблять приложению UniFi Network, с 1 до 2 ГБ. Прежде чем переходить на машину с большими ресурсами ЦП, рекомендуется максимально увеличить доступную память на этой машине с помощью указанных выше настроек, чтобы проверить, снизится ли использование ЦП.
Если 2 ГБ недостаточно, администраторы могут увеличить лимит до 4, 8, 16 или даже 32 ГБ в зависимости от масштаба. В этом случае просто увеличьте значение выше с шагом 1024, т.е. 4 ГБ = 4096.
Примечание: Команда Java jstat -gcutil может использоваться для проверки достаточности выделения памяти на вашей машине. Подробнее см. в документации Oracle.
Увеличение кэша движка Mongo WiredTiger
Если вы уже увеличили настройки памяти приложения UniFi Network как минимум до 4 ГБ (xmx), вам может также потребоваться изменить кэш движка Mongo WiredTiger по умолчанию. По умолчанию приложение UniFi Network использует:
db.mongo.wt.cache_size=256
В версии UniFi Network 6.5.13 и выше вы можете изменить этот параметр или позволить Mongo выбрать значение по умолчанию, используя:
db.mongo.wt.cache_size_default=true
Для получения дополнительной информации обратитесь к документации Mongo.
Включение высокопроизводительного сборщика мусора Java
Если увеличение памяти не решает проблему, администраторы могут рассмотреть возможность добавления этой строки в файл system.properties:
unifi.G1GC.enabled=true
Это включает новый сборщик мусора Java, который может помочь оптимизировать производительность. Однако, если после этих изменений высокая загрузка ЦП продолжается после увеличения памяти, может потребоваться более мощная машина с большим количеством ядер ЦП и большим объемом памяти для обработки рабочей нагрузки.
Изменение версии/движка Mongo
В постоянных случаях администраторы могут рассмотреть возможность обновления MongoDB до более высокой версии как способа лучшего масштабирования развертывания UniFi Network. Для приложения UniFi Network минимальная версия MongoDB — 3.6, а максимальная — 4.4.
Обратите внимание, что обновление MongoDB может потребовать выполнения его поэтапно, в зависимости от начальной версии и новой целевой версии. Для получения дополнительной информации обратитесь к руководству по обновлению Mongo:
Симптом: Пропущен пульс или медленная подготовка
Все устройства работают, взаимодействуя с UniFi Network. Эти регулярные сообщения inform называются «пульсом». По умолчанию приложение может обрабатывать 200 одновременных подключений устройств, поэтому пульс не должен пропускаться, если не управляются тысячи устройств. Количество одновременных сообщений inform, которые можно обработать, можно задать в файле system.properties, добавив следующие строки и отрегулировав значения в соответствии с вашими потребностями. Не имеет значения, где эти строки добавлены в файле.
inform.num_thread=200 inform.max_keep_alive_requests=100
Значение по умолчанию — 200, и значение max_keep_alive_requests всегда должно быть меньше, чем num_thread. Попробуйте увеличивать значение оттуда. Должна наблюдаться повышенная стабильность устройств, и, распространяя конфигурацию на другие устройства, она станет еще стабильнее.
Настройка подключения к базе данных
При работе с большой установкой UniFi может потребоваться запуск внешнего кластера Mongo, чтобы иметь возможность масштабировать базу данных независимо от приложения UniFi Network. Обсуждение этого можно найти здесь на нашем форуме Community Beta. Если наблюдается высокая загрузка ЦП процессом Mongo, это может указывать на необходимость более мощной машины или необходимости отделить процесс mongodb, как упоминалось выше. После этого можно настроить следующее, чтобы увидеть, приводит ли это к лучшей производительности приложения:
db.mongo.connections_per_host=500
Была ли эта статья полезной?
1 Человек посчитал эту статью полезной