Modyfikowanie ustawień pamięci Java

W zależności od wymagań dotyczących ruchu i przetwarzania może być konieczna zmiana rozmiaru pamięci sterty lub rozmiaru metadanych klasy w przypadku węzłów, na których działają komponenty chmury prywatnej oparte na języku Java.

W tej sekcji znajdziesz domyślne i zalecane rozmiary pamięci sterty Java, a także proces zmiany ustawień domyślnych. Na koniec w tej sekcji opisano, jak zmienić inne ustawienia JVM za pomocą plików właściwości.

Domyślne i zalecane rozmiary pamięci sterty

W tabeli poniżej znajdziesz domyślne i zalecane rozmiary pamięci sterty Java dla komponentów chmury prywatnej opartych na języku Java:

Komponent Nazwa pliku właściwości Domyślny
rozmiar sterty
Zalecany
rozmiar sterty
Czas trwania
Cassandra nie dotyczy Skonfigurowane automatycznie1 Konfigurowane automatycznie1
procesor komunikatów message-processor.properties 512 MB 3–6 GB2
Router router.properties 512 MB 512 MB
Analytics
Serwer Postgres postgres-server.properties 512 MB 512 MB
Serwer Qpid qpid-server.properties 512 MB 2 GB – 4 GB
Zarządzanie
Serwer zarządzania management-server.properties 512 MB 512 MB
UI ui.properties 512 MB 512 MB
OpenLDAP nie dotyczy Aplikacja natywna3 Aplikacja natywna3
Dozorca w zoo zookeeper.properties 2048 MB 2048 MB
Uwagi

1 Cassandra dynamicznie oblicza maksymalny rozmiar sterty podczas uruchamiania. Obecnie jest to połowa całkowitej pamięci systemowej, maksymalnie 8192 MB. Informacje o ustawianiu rozmiaru sterty znajdziesz w artykule Zmienianie rozmiaru pamięci sterty.

2 W przypadku procesorów komunikatów Apigee zaleca ustawienie rozmiaru sterty na wartość od 3 GB do 6 GB. Zwiększ rozmiar sterty powyżej 6 GB dopiero po przeprowadzeniu testów wydajności.

Jeśli podczas testowania wydajności wykorzystanie sterty zbliża się do maksymalnego limitu, zwiększ go. Informacje o ustawianiu rozmiaru sterty znajdziesz w artykule Zmienianie rozmiaru pamięci sterty.

3 Nie wszystkie komponenty chmury prywatnej są zaimplementowane w języku Java. Aplikacje działające natywnie na platformie hosta nie są oparte na języku Java, więc nie mają konfigurowalnych rozmiarów sterty Java. Zamiast tego zarządzanie pamięcią jest realizowane przez system hosta.

Aby określić, ile pamięci Apigee zaleca przydzielić do komponentów opartych na języku Java w węźle, dodaj wartości wymienione powyżej dla każdego komponentu w tym węźle. Jeśli na przykład węzeł hostuje zarówno serwer Postgres, jak i Qpid, Apigee zaleca, aby łączna alokacja pamięci wynosiła od 2,5 GB do 4,5 GB.

Listę wymaganego sprzętu (np. pamięci RAM) znajdziesz w artykule Wymagania dotyczące instalacji.

Zmienianie rozmiarów pamięci sterty

Aby zmienić ustawienia pamięci sterty, zmodyfikuj plik właściwości komponentu. Na przykład w przypadku procesora komunikatów zmodyfikuj plik /opt/apigee/customer/application/message-processor.properties.

Jeśli plik message-processor.properties nie istnieje lub jeśli nie istnieje odpowiedni plik .properties dla dowolnego komponentu Edge, utwórz go, a następnie zmień właściciela pliku na użytkownika „apigee”, jak w tym przykładzie:

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

Jeśli komponent jest zainstalowany na wielu maszynach, np. procesor komunikatów, musisz zmodyfikować plik właściwości na wszystkich maszynach, na których znajduje się komponent.

W tabeli poniżej znajdziesz właściwości, które możesz edytować, aby zmienić rozmiary sterty:

Właściwość Opis
bin_setenv_min_mem

Minimalny rozmiar sterty. Domyślna wartość jest oparta na wartościach wymienionych w sekcji Domyślne i zalecane rozmiary pamięci sterty.

To ustawienie odpowiada opcji -Xms w języku Java.

bin_setenv_max_mem

Maksymalny rozmiar sterty. Domyślna wartość jest oparta na wartościach wymienionych w sekcji Domyślne i zalecane rozmiary pamięci sterty.

To ustawienie odpowiada opcji -Xmx w języku Java.

bin_setenv_meta_space_size

Domyślny rozmiar metadanych klasy. Wartość domyślna jest ustawiona na wartość bin_setenv_max_permsize, która domyślnie wynosi 128 MB. W przypadku procesora komunikatów Apigee zaleca ustawienie tej wartości na 256 MB lub 512 MB, w zależności od natężenia ruchu.

To ustawienie odpowiada opcji -XX:MetaspaceSize w języku Java.

Gdy ustawiasz właściwości rozmiaru sterty w węźle, użyj sufiksu „m”, aby wskazać megabajty, jak w tym przykładzie:

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

Po ustawieniu wartości w pliku właściwości uruchom ponownie komponent:

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

Na przykład:

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

Zmienianie innych właściwości JVM

W przypadku ustawień Javy, które nie są kontrolowane przez właściwości wymienione powyżej, możesz też ustawić te właściwości w odpowiednim pliku właściwości dowolnego komponentu Edge:

  • bin_setenv_ext_jvm_opts: ustaw dowolną właściwość Javy, która nie została określona przez inne właściwości. Na przykład:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    Nie używaj jednak bin_setenv_ext_jvm_opts do ustawiania -Xms, -Xmx ani -XX:MetaspaceSize, ponieważ te wartości są kontrolowane przez właściwości wymienione powyżej.

Dodatkowe wskazówki dotyczące konfigurowania pamięci dla komponentów chmury prywatnej znajdziesz w tym artykule na forach Edge.