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

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

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

Стандартные и рекомендуемые размеры памяти кучи

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

Компонент Имя файла свойств По умолчанию
Размер кучи
рекомендуемые
Размер кучи
Время выполнения
Кассандра н/д Автоматически настроено 1 Автоматически настроено 1
Процессор сообщений message-processor.properties 512 МБ 3 ГБ – 6 ГБ 2
Маршрутизатор router.properties 512 МБ 512 МБ
Аналитика
Постгрес-сервер postgres-server.properties 512 МБ 512 МБ
Qpid-сервер qpid-server.properties 512 МБ 2ГБ - 4ГБ
Управление
Сервер управления management-server.properties 512 МБ 512 МБ
пользовательский интерфейс ui.properties 512 МБ 512 МБ
OpenLDAP н/д Родное приложение 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.