Поиск:

Оптимизация БД сервера Openfire

В процессе эксплуатации Jabber-сервера Openfire неприятным сюрпризом стал факт постепенного «съедания» всей памяти, доступной Java-машине. Перезапуск службы не давал результатов, лишь увеличение лимита памяти ненадолго решало проблему. Когда я увидел, как при минимальной загрузке служба «съедает» все выделенные ей 256Мб ОЗУ – я понял, что с этим нужно решать кардинально.

Детальное изучение программы показало, что все дело в базе, в которой сервер хранит служебную информацию. Я использую опцию «embedded database» и похоже на то, что при работе она пытается полностью загрузиться в память. Учитывая её немалый объём (за несколько лет набралось около 200Мб), стало очевидно, в чём корень зла.

Некоторое время пришлось потратить на поиск инструментов для работы с HSQLDB, толковых бесплатных не нашёл и остановился на платной RazorSQL (у неё есть полнофункциональная триал-версия на 30 дней). Подключился к базе (пользователь 'SA', пароль пустой) и удалил старые логи плагина 'monitoring', сохранив структуру, но удалив все записи из таблиц 'ENTCONPARTICIPANT', 'ENTCONVERSATION', 'ENTMESSAGEARCHIVE', 'OFCONPARTICIPANT', 'OFCONVERSATION', 'OFMESSAGEARCHIVE' схемы 'public'.

После этой операции, база «похудела» до нескольких мегабайт и теперь Openfire использует всего 30-40Мб ОЗУ при полной нагрузке.

Обсуждение

jislom, 27/09/2012 07:07

Спасибо Денис !!!! попробую ,у меня аш 1,4 Гб сеъло файр



 
© 2009–2013 Денис Фатеев (Danger)
Копирование контента без указания автора преследуется сотрудниками ада.
Recent changes RSS feed
Valid XHTML 1.0
Valid CSS