Архива требуется три разных типов памяти:
- Область памяти PermGen. Эта память используется для действующего программного кода. Обычно под эту область выделяется 192MB вне зависимости от количества физической оперативной памяти, имеющейся на компьютере. При установке системы, вам будет предложен именно этот объем.
- Область памяти Heap или "куча". Эта память используется для распределения объектов внутри исполнительной среды Java (англ. Java runtime environment).
- Виртуальная память. Эта память используется в качестве непосредственного буфера. В целях лучшей производительности, она находится за пределами исполнительной среды Java (JRE) и представляет всю оставшуюся оперативную память на вашем компьютере.
Примечание: ОЗУ - оперативное запоминающее устройство, часто такое сокращение используется для обозначения оперативной памяти компьютера.
ОЗУ = PermGen (программный код) + Куча + Виртуальная память (Прямой буфер) + Операционная система
Так как Архива использует виртуальную память за пределами JRE, необходимо как минимум 1/2 всей физически доступной оперативной памяти оставить свободной. Эта память потребуется для нормального функционирования операционной системы.
Рекомендованные настройки памяти
Linux
8 GIG ОЗУ - типичный SME сервер
Из расчёта, что на сервере доступно 8 GB оперативной памяти и вы хотите использовать все доступные ресурсы, распределите память следующим образом:
Область Java Heap ("куча"): 3072MB
Perm Gen (стек): 192MB
Виртуальная память: 4416MB
Операционная система: 512MB (headless-Linux c минимумом настроек)
1.5 GIG абсолютный минимум ОЗУ - маленький бизнес-сервер
Если ожидается, что Архива будет доступен весьма небольшой объем памяти и нужно сохранить как можно больше памяти свободной, используйте следующий порядок распределения:
Область Java Heap ("куча"): 384MB
Perm Gen (стек): 192MB
Виртуальная память: 448MB
Операционная система: 512MB (headless-Linux c минимумом настроек)
Windows
8 GIG ОЗУ - типичный SME сервер
Из расчёта, что на сервере доступно 8 GB оперативной памяти и вы хотите использовать все доступные ресурсы, распределите память следующим образом:
Область Java Heap ("куча"): 3008MB
Perm Gen (стек): 192MB
Виртуальная память: 2848MB
Операционная система: 2048MB
3 GIG абсолютный минимум ОЗУ - маленький бизнес-сервер
Если ожидается, что Архива будет доступен весьма небольшой объем памяти и нужно сохранить как можно больше памяти свободной, используйте следующий порядок распределения:
Область Java Heap ("куча"): 684MB
Perm Gen (стек): 192MB
Виртуальная память: 684MB
Операционная система: 1512MB
Как изменить настройки памяти
Проверить всю доступную оперативную память - Архива всегда будет использовать максимальный объем оперативной памяти, заданный вами.
Изменить размер кучи - Увеличить область heap ("кучу"), доступную для Архива.
Изменить размер области PermGen - Увеличить область perm gen (стек), доступную для Архива
Проверка всей доступной оперативной памяти
Прежде чем выделить больше памяти, пожалуйста, проверьте весь физический объем доступной оперативной памяти (RAM).
1) Windows 7:
a) Нажмите кнопку "Пуск" (Start)
b) В поле поиска напечатайте 'ram' без кавычек.
c) Кликните "Отображение размера ОЗУ на компьютере"
2) Linux
a) В терминате напечатайте команду "top".
Меняем размер кучи (область Heap)
Linux.
Выполните в терминале:
a) Запустите скрипт configure (настроек), как показано ниже:б) Перезагрузите сервер Архива
- Windows
a) Кликните правой кнопкой по апплету Панели задач, кликните Настройка.
б) Выберите вкладку (иконку) Java.
в) Увеличьте максимальный объем доступной памяти.
г) Перезапустите сервис Архива (это требуется, чтобы изменения вступили в силу!)
Более подробную информацию можно найти здесь: http://java.sun.com/docs/hotspot/HotSpotFAQ.html#gc_heap_32bit.
После выделения большего количества памяти, не беспокойтесь, если процесс Архива будет использовать весь объем выделенной памяти. Это нормальное поведение для Java-приложений. Более подробную информацию о распределении памяти в Java-приложениях вы можете найти в разделе Нехватка оперативной памяти.
Меняем размер области PermGen
Если серверу недосаточно памяти в области perm gen (пространство стека), следующие ошибки должны появиться в файле лога отладки debug.log:
Решение - добавить больше памяти в область PermGen.
Для Windows:
a) Правой кнопкой кликните по апплету Панели задач, кликните Настроить.
б) Выберите вкладку Java.
в) В вкладке Java Options поменяйте значение на: -XX:MaxPermSize=192m
г) Перезагрузите сервис Архива (это нужно для того, чтобы изменения вступили в силу!).
Для Linux
а) Отредактируйте файл /opt/archiva/server/startserver с помощью текстового редактора.
б) Измените строку о максимально разрешенном размере области, чтобы она представляла собой следующее: -XX:MaxPermSize=192m
в) Перезагрузите сервис Архива (это нужно для того, чтобы изменения вступили в силу!).