W Edge dla chmury prywatnej w wersji 4.54.00 (która działa w Javie 21) procesor komunikatów domyślnie używa modułu Garbage-First Garbage Collector (G1GC). W tym dokumencie opisujemy, jak skonfigurować i zweryfikować ustawienia odśmiecania pamięci na procesorze komunikatów.
Dostosowywanie modułu odśmiecania pamięci na procesorach komunikatów
W tej sekcji opisano procedurę konfigurowania alternatywnych ustawień odśmiecania pamięci (GC) na procesorze komunikatów Edge. Parametrami GC zarządzasz, aktualizując właściwości GC na procesorze komunikatów. Aby dostosować dowolną właściwość konfiguracji, użyj składni tokena zdefiniowanej w artykule Konfigurowanie Edge.
Aby zmodyfikować ustawienia GC na procesorach wiadomości, wykonaj te czynności:
Sprawdzanie właściwości GC
Poniżej opisujemy, jak sprawdzić skonfigurowane właściwości GC:
-
Wyszukaj właściwości GC w katalogu źródłowym procesora wiadomości
/opt/apigee/edge-message-processor/sourceza pomocą następującego polecenia:grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
-
Sprawdź, czy dane wyjściowe tego polecenia pokazują konfigurację właściwości czyszczenia pamięci dla procesora komunikatów:
/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}Ciąg znaków między tagami
{T}{/T}to nazwa właściwości, którą możesz ustawić w pliku.propertiesprocesora komunikatów.
Modyfikowanie czyszczenia pamięci na procesorach komunikatów
Poniżej opisujemy, jak zmodyfikować ustawienia GC na procesorach wiadomości Apigee:
-
Otwórz
/opt/apigee/customer/application/message-processor.propertiesplik na maszynie procesora komunikatów w edytorze. Jeśli plik jeszcze nie istnieje, utwórz go. Na przykład:vi /opt/apigee/customer/application/message-processor.properties
-
Dodaj odpowiednie wiersze konfiguracji GC na podstawie profilu docelowego:
-
Opcja A: użyj G1GC jako domyślnego modułu odśmiecania pamięci z pewnymi
modyfikacjami:
conf_system_useG1GC=true conf_system_useStringDeduplication=true conf_system_g1gc.g1ReservePercent=15
-
Opcja B: włącz Generational ZGC (opcjonalnie w przypadku wdrożeń o bardzo niskim opóźnieniu):
conf_system_useG1GC=false conf_system_useZGC=true bin_setenv_max_meta_space_size=1024m
-
Opcja C: włącz ogólne ustawienie GC:
Ustaw
bin_setenv_ext_jvm_optsw pliku zastępującym.propertieskomponentu (/opt/apigee/customer/application/message-processor.properties) , aby skonfigurować dowolne ogólne właściwości GC, a następnie ponownie uruchom komponent. Na przykład:conf_system_useG1GC=false conf_system_useZGC=false bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
-
Opcja A: użyj G1GC jako domyślnego modułu odśmiecania pamięci z pewnymi
modyfikacjami:
- Zapisz zmiany.
-
Upewnij się, że właścicielem tego pliku właściwości jest użytkownik
apigee. Na przykład:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Uruchom ponownie procesor komunikatów za pomocą tego polecenia:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli masz więcej niż 1 procesor komunikatów, powtórz te czynności na wszystkich procesorach komunikatów.
Aktualizowanie deduplikacji ciągów znaków
Domyślnie konfiguracja G1GC ustawia UseStringDeduplication na
true, co optymalizuje alokację pamięci sterty Java, umożliwiając
identycznym wartościom String współdzielenie pojedynczej tablicy znaków. Aby wyłączyć deduplikację ciągów znaków, ustaw conf_system_useStringDeduplication=false w /opt/apigee/customer/application/message-processor.properties i ponownie uruchom procesor komunikatów zgodnie z opisem w sekcji Modyfikowanie czyszczenia pamięci na procesorach komunikatów.
Weryfikowanie konfiguracji czyszczenia pamięci na procesorach komunikatów
Aby sprawdzić, czy zmiany konfiguracji GC zostały zastosowane na procesorze wiadomości:
-
Wyszukaj właściwość GC w
/opt/apigee/edge-message-processor/confkatalogu i sprawdź czy została ustawiona na nową wartość. Na przykład:grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
Sprawdź, czy
/opt/apigee/edge-message-processor/conf/system.propertiesodzwierciedla nowo skonfigurowane wartości. Na przykład ustawienia Apigee Default GC są wyświetlane w ten sposób:/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
-
Sprawdź, czy uruchomiony proces JVM procesora komunikatów został uruchomiony z oczekiwanymi
-XX:flagami:ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
-
W przypadku Apigee Default G1GC sprawdź, czy w wierszu polecenia znajduje się:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m -
W przypadku Generational ZGC sprawdź, czy w wierszu polecenia znajduje się:
-XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
-
W przypadku Apigee Default G1GC sprawdź, czy w wierszu polecenia znajduje się:
- Jeśli nadal nie możesz skonfigurować ustawień GC, skontaktuj się z zespołem pomocy Apigee Edge.