После обновления до версии 2.4.6 контроллер начал периодически падать. В системных логах появляются сообщения о недостатке памяти и куче. Также зависает процесс mongod, из-за чего контроллер не удаётся перезапустить. Процесс mongod нужно убить, и только после этого можно перезапустить контроллер.
mrbig
Guest
08.09.2014 12:40:00
Для справки: я настроил cron-задачу, чтобы каждый вечер перезапускать контроллер, и этот уродливый костыль решил мою проблему. Контроллер перезагружался каждый раз без проблем. В версии 3.x этой проблемы у меня больше не возникало.
SaLMoN
Guest
20.03.2014 09:52:00
У меня была такая же проблема на 32-битной CentOS 6.5, Java JDK обновили до версии 1.7.0.51, и я добавил параметр запуска -Xmx1024M в команду запуска java.
samsan
Guest
19.03.2014 06:10:00
У меня такая же проблема с Ubuntu 12.04
koffik
Guest
17.03.2014 12:03:00
> Из любопытства, у вас есть 2 ГБ или больше свободного места на диске, где установлен UniFi контроллер? Debian Wheezy, 64-бит. Я перенёс /var/lib/unifi (место UniFi на Debian) на отдельный логический том LVM, потому что однажды он почти заполнил корневую файловую систему. Если бы у меня был доступ к ZFS, я бы сделал квоту ZFS для контроля. Этот том занимает 15 ГБ, из них сейчас используется около 7 ГБ. Пока что я только вручную удаляю старые данные, но база уже сократилась на несколько гигабайт при подключённых 70 точках доступа.
> Сколько оперативной памяти установлено в компьютере? 4 ГБ, занято около 1 ГБ, но может увеличиваться в зависимости от нагрузки.
> Какую версию Java вы используете? Я переключился на OpenJDK 7, отредактировав стандартный init-скрипт.
> У вас установлено несколько версий Java? Да, из-за зависимости пакета unifi от OpenJDK 6, но в реальности я использую только OpenJDK 7.
> На какой версии ОС это установлено? 32-бит или 64-бит? 64-бита, потому что видел слишком много проблем с MongoDB на 32-битных системах.
> Компьютер выделен только для UniFi контроллера или на нём работают другие программы? Это виртуальная машина, она ещё делит ресурсы с FreeRADIUS, который не занимает много ресурсов.
> Пробовали ли вы устанавливать контроллер на другой компьютер, и каков был результат? Да, на ранних этапах я перешёл с настройки L2 на L3 с использованием DNS. На L2 (ещё с версии 2.3.x) точки доступа запоминали IP контроллера в своей постоянной конфигурации, поэтому их приходилось сбрасывать при переходе на L3 (DNS), чтобы они могли подключиться. Позже я перенёс UniFi контроллер на другую машину в другой подсети, это было вынуждено. Всё, что мне нужно было сделать — импортировать резервную копию конфигурации, а затем при обновлении DNS записи точки доступа либо автоматически переключились на новый контроллер, либо переключались после перезагрузки через старый контроллер (или просто через SSH).
@alibek
Тебе стоит серьёзно подумать об обновлении FreeBSD хотя бы до версии 8.4, 8.2 уже не поддерживается с 2012 года. К тому же начнутся проблемы с портами на 8.2, так как в этом году будет прекращена поддержка старого pkg в пользу pkgng. (Кстати, net-mgmt/unifi2 и net-mgmt/unifi3 уже появились в портах, можно собрать собственные бинарные пакеты с помощью poudriere, я так и сделал для домашней установки UniFi).
alibek
Guest
17.03.2014 05:09:00
Почему вы не используете обычный редактор? Ваш форум портит мои ответы.
Из любопытства, у вас на диске, где установлен UniFi контроллер, есть 2 ГБ или больше свободного места? Да, больше 100 ГБ.
Сколько оперативной памяти стоит в компьютере? 6 ГБ.
Какую версию Java вы используете? 1.6.0_32.
У вас установлено несколько версий Java? Нет.
На какой версии ОС он установлен? 32-битная или 64-битная? FreeBSD 8.2 x64 (amd64).
Компьютер выделен только под UniFi контроллер или используется ещё и для других программ? Да, еще используются службы DHCP (isc-dhcp) и DNS (dnsmasq).
Пробовали ли вы ставить контроллер на другой компьютер? Если да, то каков был результат? Нет, у меня сложная структура, которую не так просто переносить.
mrbig
Guest
16.03.2014 20:02:00
Привет, я готов помочь, вот подробности моей настройки: 32-битный Debian unstable, использую контроллер из репозитория Ubiquiti для squeeze. Ядро версии 3.8.13. Контроллер работает на openjdk 6 jre (1.6.0_30). Mongodb версии 2.4.9-1. В компьютере 2 ГБ оперативки, и этого хватает: обычно свободно около 300-400 МБ памяти в момент ошибки с памятью (лимит кучи Java установлен в 1 ГБ: -Xmx1024M). Свободного места на диске осталось меньше 2 ГБ, но это не проблема: моя база mongodb всего 33 МБ, и до расширения до 2 ГБ еще долго добираться.
Отмечу: я тоже использую mongodb на работе. Она склонна предварительно выделять дисковое пространство блоками по 2 ГБ, и если места мало, скорее всего сервер упадет. (Уже видел такое 😀) Но сначала выделяются маленькие блоки (64 МБ по документации, но, думаю, на 32-битной системе это всего 32 МБ), затем следующий блок — 128 МБ, потом 256 и так далее, пока не достигнут 2 ГБ, а после этого каждый новый блок по 2 ГБ. Вот ссылка: — так что в реальности 2 ГБ дискового пространства нужны только когда база превышает примерно 4 ГБ.
Сам же mongodb-сервер на моём компьютере работает нормально, проблема в java-контроллере – у него утечка памяти. Я уверен, что mongodb-клиент, использующийся в контроллере, не полностью совместим с mongodb на Debian. Думаю, выпуск тестировали с mongodb 2.2 или 2.0, а с тех пор в протоколе многое поменялось. Если будет время, попробую проверить бета-версию.
dukejames
Guest
16.03.2014 02:30:00
Из любопытства, у вас есть 2 ГБ или больше свободного места на диске, где установлен контроллер UniFi? Сколько памяти установлено в компьютере? Какую версию Java вы используете? У вас установлено несколько версий Java? На какой версии ОС установлен контроллер? 32-битная или 64-битная? Компьютер используется только как контроллер UniFi или на нём есть другое программное обеспечение? Вы уже пробовали установить контроллер на другой компьютер, и если да, то какой был результат?
internetnowjohn
Guest
15.03.2014 22:08:00
У меня тоже проблемы с зависанием контроллера в версии 2.4.6 на нескольких развертываниях. Жду, когда это исправят.
mrbig
Guest
14.03.2014 22:50:00
Привет, у меня та же самая проблема: память, используемая контроллером UniFi, постоянно растёт, пока в логах не появляется ошибка Out of memory, и сервер перестаёт отвечать. Я сделал дамп кучи с помощью visualvm, и, по-моему, ответы от mongodb не освобождаются должным образом: найдено более 100 тысяч экземпляров класса com.mongodb.Response. Всего за 10 минут добавилось ещё тысяча объектов. Я использую версию для Linux Debian с openjdk6-jre-headless и mongodb 2.4.9-1. Если нужно, могу предоставить дампы кучи.