Изменение настроек памяти Java

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

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

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

В следующей таблице перечислены размеры кучи Java по умолчанию и рекомендуемые размеры памяти для компонентов частного облака на основе Java:

Компонент Имя файла свойств По умолчанию
Размер кучи
Рекомендуется
Размер кучи
Время выполнения
Кассандра н/д Автоматически настроено 1 Автоматически настроено 1
Процессор сообщений 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 МБ
пользовательский интерфейс ui.properties 512 МБ 512 МБ
SymasLDAP н/д Нативное приложение 3 Нативное приложение 3
Смотритель зоопарка zookeeper.properties 2048 МБ 2048 МБ
Примечания

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

2 Для процессоров сообщений Apigee рекомендует устанавливать размер кучи от 3 до 6 ГБ. Увеличивайте размер кучи свыше 6 ГБ только после проведения тестов производительности.

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

3. Не все компоненты частного облака реализованы на 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

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

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

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

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

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

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 , так как эти значения контролируются свойствами, перечисленными выше.

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