Как изменить настройки памяти Java

В зависимости от трафика и требований к обработке вам может понадобиться изменить размер памяти кучи или метаданных класса для узлов, на которых работают компоненты частного облака на основе Java.

В этом разделе приведены стандартные и рекомендуемые размеры кучи Java, а также описан процесс изменения стандартных значений. В последнем разделе этой статьи рассказывается, как изменить другие настройки JVM с помощью файлов свойств.

Рекомендуемые размеры кучи по умолчанию

В таблице ниже приведены размеры кучи Java по умолчанию и рекомендуемые размеры для компонентов Private Cloud на основе Java.

Компонент Название файла свойств По умолчанию
Размер кучи
Рекомендуемый
размер кучи
Время выполнения
Cassandra – Настраивается автоматически1 Настроено автоматически1
Message Processor message‑processor.properties 512 МБ 3–6 ГБ2
Маршрутизатор router.properties 512 МБ 512 МБ
Аналитика
Сервер Postgres postgres‑server.properties 512 МБ 512 МБ
Сервер Qpid qpid‑server.properties 512 МБ 2–4 ГБ
Управляющие
Сервер управления management‑server.properties 512 МБ 512 МБ
Новый интерфейс Edge (edge-management-ui) – Нативное приложение3 Нативное приложение3
SymasLDAP – Нативное приложение3 Нативное приложение3
Смотритель зоопарка zookeeper.properties 2048 МБ 2048 МБ
Примечания

1 Cassandra динамически рассчитывает максимальный размер кучи при запуске. В настоящее время это половина от общего объема системной памяти, но не более 8192 МБ. Подробнее о том, как изменить размер кучи…

2 Для Message Processor рекомендуется задать размер кучи от 3 до 6 ГБ. Увеличивать размер кучи сверх 6 ГБ следует только после проведения тестов производительности.

Если во время тестирования производительности использование кучи приближается к максимальному пределу, увеличьте его. Информацию о том, как задать размер кучи, можно найти в разделе Как изменить размер памяти кучи.

3 Не все компоненты Private Cloud реализованы на Java. Поскольку они не основаны на Java, у приложений, работающих нативно на хост-платформе, нет настраиваемых размеров кучи Java. Вместо этого они полагаются на хост-систему для управления памятью.

Чтобы определить, сколько памяти Apigee рекомендует выделить для компонентов на основе Java на узле, сложите значения, указанные выше для каждого компонента на этом узле. Например, если на узле размещены серверы Postgres и Qpid, Apigee рекомендует выделить от 2,5 до 4,5 ГБ памяти.

Список требований к оборудованию (например, к ОЗУ) приведен в разделе Требования к установке.

Как изменить размер кучи

Чтобы изменить настройки памяти кучи, отредактируйте файл свойств компонента. Например, для обработчика сообщений измените файл /opt/apigee/customer/application/message-processor.properties.

Если файла message-processor.properties не существует или если соответствующий файл .properties для какого-либо компонента Edge отсутствует, создайте его и измените владельца файла на пользователя apigee, как показано в следующем примере:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

Если компонент установлен на нескольких компьютерах, например Message Processor, то необходимо отредактировать файл свойств на всех компьютерах, на которых размещен компонент.

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

Свойство Описание
bin_setenv_min_mem

Минимальный размер кучи. Значение по умолчанию зависит от значений, указанных в разделе Рекомендуемые размеры кучи по умолчанию.

Эта настройка соответствует параметру -Xms в Java.

bin_setenv_max_mem

Максимальный размер кучи. Значение по умолчанию зависит от значений, указанных в разделе Рекомендуемые размеры памяти кучи по умолчанию.

Эта настройка соответствует параметру Java -Xmx.

bin_setenv_meta_space_size

Размер метаданных класса по умолчанию. Значение по умолчанию соответствует значению bin_setenv_max_permsize, которое по умолчанию равно 128 МБ. В процессоре сообщений Apigee рекомендует задать значение 256 МБ или 512 МБ в зависимости от трафика.

Эта настройка соответствует параметру Java -XX:MetaspaceSize.

При настройке свойств размера кучи на узле используйте суффикс "m", чтобы указать мегабайты, как показано в следующем примере:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

После установки значений в файле свойств перезапустите компонент:

/opt/apigee/apigee-service/bin/apigee-service component restart

Пример:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Как изменить другие свойства JVM

Для настроек Java, которые не контролируются перечисленными выше свойствами, вы также можете задать следующие параметры в соответствующем файле свойств для любого компонента Edge:

  • bin_setenv_ext_jvm_opts – задает любое свойство Java, не указанное другими свойствами. Пример:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    Однако не используйте bin_setenv_ext_jvm_opts, чтобы задать -Xms, -Xmx или -XX:MetaspaceSize, поскольку эти значения контролируются перечисленными выше свойствами.

Дополнительные советы по настройке памяти для компонентов Private Cloud можно найти в этой статье на форумах Edge.