Перейти к концу метаданных
Переход к началу метаданных

Вы можете столкнуться со следующими проблемами, связанными с оперативной памятью :

Не хватает оперативной памяти 

Если Архива будет не хватать оперативной памяти, это может привести к непредсказуемым последствиям. К примеру, сервер может перестать архивировать письма или виртуальная машина Java (JVM), на которой запущена Архива, перестанет работать.  

Icon

Если у вас больше 500 рабочих почтовых ящиков, чрезвычайно важно использовать больше минимально разрешенного объема оперативной памяти. По меньшей мере 1512GB RAM должно быть доступно на сервере, обслуживающем 500 и больше почтовых ящиков, или 1024GB в области памяти Heap этого сервера. 

Если вы заметили, что сервер ведет себя непредсказуемо, проверьте файл debug.log на предмет ошибок, вызванных нехваткой оперативной памяти. Обычно, если ошибка связана с нехваткой памяти, её причины будут выведены в файле лога отладки debug.log. 

Подобная ошибка может быть вызвана одной из следующих трёх причин: 

  1. Не хватает места в области памяти Heap или "куче" (java.lang.OutOfMemoryError: Heap space).
    Возможно, слишком большой объем архивного почтового трафика обрабатывается сервером, из-за чего архивный сервер большое число объектов помещает в область памяти Heap (в "кучу").
  2. Не достаточно места в области памяти Perm Gen (java.lang.OutOfMemoryError: Permgen space). 
    Кодовая база Архива больше, чем выделенное под нее количество оперативной памяти. 
    Замечание: В средах большого объема ваш сервер может потребовать больше памяти, чем обычно. Как распределить эту память, читайте в Настройках памяти
  3. Не достаточно виртуальной памяти (java.lang.OutOfMemoryError: MappedByteBuffer).
    Обычно это указывает на то, что слишком много памяти в "куче" выделено под процесс Архива. Архива не может выделить достаточное количество виртуальной памяти (памяти, выделенной за пределами виртуальной среды). 

     

 

Решение проблем 

  1. Области памяти Heap и PermGen: увеличить количество оперативной памяти, используемой Архива. 
    Как выделить Архива больше оперативной памяти, читайте в Настройках памяти

  2. Обновите программное обеспечение до последней актуальной версии.
    На https://archiva.ru/downloads скачайте самую последнюю версию

  3. "Куча": уменьшите количество потоков архивирования, используемых по умолчанию. 
    Архива одновременно архивирует шесть писем. Чтобы сократить потребление памяти, уменьшите количество потоков архивирования во вкладке Настройка -> Настройки архива и перезагрузите сервер.

  4. "Куча": уменьшите максимальное количество примонтированных архивов.
    По умолчанию, максимальное количество примонтированных архивов равно 410. Чтобы уменьшить потребление памяти, уменьшите максимальное число примонтированных архивов во вкладке Настройка -> Настройки архива и перезагрузите сервер.

  5. Виртуальная память: Уменьшите область памяти Heap.

    Виртуальная память - это память, выделенная за пределами среды JVM. Уменьшите долю "кучи", чтобы она занимала от 1/3 до 1/2 всей доступной физической памяти (ОЗУ) на вашем компьютере. Так же, на некоторых компьютерах с ОС Linux, вам потребуется запустить команду "ulimit -v unlimited" в терминале, чтобы убедиться, что Архива может выделить достаточно виртуальной памяти для операций индексации.

Высокое потребление оперативной памяти


Вируальная машина Java обычно использует максимум доступной оперативной памяти (определенной с помощью параментра -xMx при запуске JVM). Но это не означает, что Архива испольщует это количество памяти. Обычно Архива  использует куда меньше (<90MB для одной операции). Это лишь означает, что сборщик мусора JVM (англ. garbage collector) не забирает свободную память по причинам, связанным с производительностью.

Сборка мусора из памяти требует ресурсов. При обычных настройках JVM удерживает освободившуюся память, пока это требуется, для того, чтобы обеспечить эффективность активного процесса. Из Просмотрщика процессов (англ. Process Viewer) может выглядеть так, как будто Архива потребляет большой объем памяти. Это выглядит так, потому что в скрипте startserver параметр -xMx задан так, что JVM имеет возможность использовать большой объем памяти.    

Чтобы сократить количество памяти, потребляемое Архива, уменьшите максимальное количество памяти, заданное, как это описывается в Настройках памяти

  • Ни одной