На днях обновлял один из серверов, на котором работал openfire интегрированный с AD. После обновления получил неработоспособный сервис. Среди ошибок была и такая:
Cache Roster was full, shrinked to 90% in 0ms.
После просмотра логов с ошибками, я понял, что краеугольный камень как раз заложен в настройке кешей сервера. На официальном сайте есть подробная документация о настройке кеша сервера: How to configure Openfire’s caches.
Опишу свой случай, чтобы стало понятно как пользоваться данной документацией:
- 1. Откроем Server, Server Manager, Cache Summary
- 2. В списке смотрим какие из параметров используют более 70% от текущего значения.
- 3. Теперь по имени кеша надо получить имя переменной. Для этого как раз инужна документация по ссылке
- 4. В Server, System Properties вносим необходимые изменения.
После внесенных исправлений необходимо перезапустить процесс и снова просмотреть логи. В моём случае помогло увеличение параметров Roster (переменная cache.username2roster.size) и VCard (переменная cache.vcardCache.size)
Сервер запускается с флагом -Xmx256m, что не дает распухать процессу java. Я заменил на -Xmx384m.
После внесенных изменений исчезли абсолютно все проблемы сервиса.