Openfire, Java, Ubuntu та пам’ять

Так сталося, що якJabber--сервера у мене працює Openfire. Відмінний продукт, простий у налаштуванні та використанні, що завів у мене підUbuntu відразу і без зайвих рухів тіла, що називається «з коробки». Але, як завжди це буває, мед виявився з дьогтем. Машинка, на якій це диво працює, досить слабка, яка до того ж має лише 496 доступних мегабайт ОЗУ. Думаю, всі знають, наскільки Java-машина ненажерлива щодо дорогоцінної пам'яті. Якби крімOpenfire на цьому «сервері» нічого не працювало — бог із ним вистачає. Але запущені та активно використовуваніOpenVPN,Apache,ProFTP,MySQL і ще по дрібниці змусили задуматися про здійснення деяких процесів «обрізання» в вигляді обмеження ресурсів, що виділяються. Почати було вирішено саме зOpenfire, що відкушує понад 300 мегабайт. І це при одному з'єднанні!

ubuntu

У конфігурації «з коробки» Java-машина виділила під Openfire 122 мегабайти. Побачити це можна на головній сторінці консолі адміністрування:

Openfire

Для чистоти експерименту поглянемо, скільки в цілому від'їдає Java разом із запущенимOpenfire за допомогоюtop абоhtop відразу після запуску сервера:

М'яко кажучи, забагато, враховуючи загальний обсяг пам'яті, наявний у розпорядженні.

Не знаю, чи можна якось обмежити саму Java у споживанні пам'яті, але спосіб, за допомогою якого можна керувати кількістю пам'яті, що виділяється під додатки, мені став відомий з інтернетів. Власне, їм і поділяюся.

Java-машина при запуску приймає серед іншого два параметри:-Xms і-Xmx, що задають початковий і максимальний обсяг пам'яті відповідно, резервований під Java-додаток. У випадку зUbuntu (не знаю, цілком можливо, що в інших системах справа така ж) для передачі цих параметрів не варто правити init-скрипт запускуOpenfire, достатньо лише визначити їх у файлі/etc/default/openfire, який зчитується в процесі запуску скриптом/etc/init.d/openfire :

Звичайно, для вашого випадку числа можуть бути іншими. Можливо, вам взагалі потрібно не зменшити, а збільшити обсяг пам'яті, що виділяється. У моїй ситуації 32 мегабайт — більш ніж достатньо.

Після внесення змін до файлу, не забуваємо перезапускатиOpenfire :

Дивимось тепер, що змінилося. АдмінкаOpenfire :

Openfire

та висновокhtop :

100 мегабайт відвоювали. Життя налагоджується! Хоча, чесно зізнатися, вже поглядаю у бік ejabberd, бо тримати монстра на такій слабкій конфігурації, як у мене — недозволена розкіш. Та й непотрібна.