В Edge для частного облака 4.54.00 (работает на Java 21) процессор сообщений по умолчанию использует сборщик мусора Garbage-First Garbage Collector (G1GC). В этом документе рассказывается, как настроить и проверить параметры сборки мусора в процессоре сообщений.
Как настроить сборщик мусора в процессорах сообщений
В этом разделе описывается процедура настройки альтернативных параметров сборки мусора (GC) в Edge Message Processor. Вы управляете параметрами GC, обновляя свойства GC в Message Processor. Чтобы изменить какое-либо свойство конфигурации, используйте синтаксис токенов, описанный в разделе Как настроить Edge.
Чтобы изменить настройки сборщика мусора в Message Processor, выполните следующие действия:
Проверьте ресурс GC
Чтобы проверить настроенные свойства GC, выполните следующие действия:
-
Найдите свойства GC в каталоге с исходными файлами обработчика сообщений
/opt/apigee/edge-message-processor/sourceс помощью следующей команды:grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
-
Убедитесь, что в выходных данных этой команды показана конфигурация свойств GC для процессора сообщений:
/opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T} /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T} /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}Строка между тегами
{T}{/T}– это название свойства, которое можно задать в файле.propertiesпроцессора сообщений.
Изменение GC в Message Processor
Ниже описано, как изменить настройки GC в процессорах сообщений Apigee.
-
Откройте файл
/opt/apigee/customer/application/message-processor.propertiesна компьютере, на котором работает обработчик сообщений, в редакторе. Если файла ещё нет, создайте его. Пример:vi /opt/apigee/customer/application/message-processor.properties
-
Добавьте нужные строки конфигурации GC в зависимости от целевого профиля:
-
Вариант А. Используйте G1GC в качестве сборщика мусора по умолчанию с некоторыми изменениями:
conf_system_useG1GC=true conf_system_useStringDeduplication=true conf_system_g1gc.g1ReservePercent=15
-
Вариант Б. Включите Generational ZGC (необязательно для развертываний с ультранизкой задержкой):
conf_system_useG1GC=false conf_system_useZGC=true bin_setenv_max_meta_space_size=1024m
-
Вариант В. Включите общую настройку GC:
Задайте значение
bin_setenv_ext_jvm_optsв файле переопределения компонента.properties(/opt/apigee/customer/application/message-processor.properties), чтобы настроить общие свойства GC, а затем перезапустите компонент. Пример:conf_system_useG1GC=false conf_system_useZGC=false bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
-
Вариант А. Используйте G1GC в качестве сборщика мусора по умолчанию с некоторыми изменениями:
- Сохраните изменения.
-
Убедитесь, что владельцем этого файла является пользователь
apigee. Пример:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Перезапустите процессор сообщений, используя следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас несколько процессоров сообщений, повторите эти шаги для всех процессоров.
Обновление дедупликации строк
По умолчанию в конфигурации G1GC для параметра UseStringDeduplication задано значение true, которое оптимизирует распределение памяти кучи Java, позволяя одинаковым значениям String использовать один массив символов. Чтобы отключить дедупликацию строк, задайте значение conf_system_useStringDeduplication=false в /opt/apigee/customer/application/message-processor.properties и перезапустите обработчик сообщений, как описано в разделе Изменение параметров сборки мусора в обработчиках сообщений.
Проверка конфигурации GC в Message Processor
Чтобы убедиться, что изменения конфигурации GC применены к Message Processor, выполните следующие действия:
-
Найдите свойство GC в каталоге
/opt/apigee/edge-message-processor/confи убедитесь, что для него задано новое значение. Пример:grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
Убедитесь, что в столбце
/opt/apigee/edge-message-processor/conf/system.propertiesуказаны заданные вами значения. Например, настройки Apigee Default GC отображаются следующим образом:/opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200 /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45 /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15 /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
-
Убедитесь, что запущенный процесс JVM обработчика сообщений был запущен с ожидаемыми флагами
-XX::ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
-
Для Apigee Default G1GC убедитесь, что командная строка содержит:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m -
Для Generational ZGC убедитесь, что командная строка содержит:
-XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
-
Для Apigee Default G1GC убедитесь, что командная строка содержит:
- Если вам по-прежнему не удается настроить параметры GC, обратитесь в службу поддержки Apigee Edge.