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 węzłach, w których działają komponenty Private Cloud oparte na Javie.

W tej sekcji znajdziesz domyślne i zalecane rozmiary pamięci sterty Java, a także proces zmiany wartości domyślnych. Na koniec ta sekcja opisuje, 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 prywatnych chmury opartych na Javie:

Komponent Nazwa pliku właściwości Domyślny
Rozmiar sterty
Zalecany
Rozmiar sterty
Środowisko wykonawcze
Cassandra nie dotyczy Skonfigurowane automatycznie1 Skonfigurowane automatycznie1
procesor komunikatów message‑processor.properties 512MB 3–6 GB2
Router router.properties 512MB 512MB
Analytics
Serwer Postgres postgres‑server.properties 512MB 512MB
Serwer Qpid qpid‑server.properties 512MB 2–4 GB
Zarządzanie
Serwer zarządzania management‑server.properties 512MB 512MB
Interfejs użytkownika ui.properties 512MB 512MB
OpenLDAP nie dotyczy Aplikacja natywna3 Aplikacja natywna3
Miłośnik zoo zookeeper.properties 2048MB 2048MB
Notatki

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 stosu znajdziesz w artykule Zmienianie rozmiaru pamięci sterty.

2 W przypadku procesorów wiadomości Apigee zaleca ustawienie rozmiaru stosu między 3 GB a 6 GB. Dopiero po przeprowadzeniu testów wydajności zwiększ rozmiar stosu do ponad 6 GB.

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

3 Nie wszystkie komponenty chmury prywatnej są zaimplementowane w języku Java. Ponieważ aplikacje te nie są oparte na Javie, aplikacje działające natywnie na platformie hosta nie mają konfigurowalnych rozmiarów sterty Javy. Zamiast tego do zarządzania pamięcią używają systemu hosta.

Aby określić łączną ilość pamięci zalecaną przez Apigee do przydzielenia komponentów opartych na Javie w węźle, dodaj wymienione powyżej wartości do każdego komponentu w tym węźle. Jeśli na przykład Twój węzeł hostuje serwery Postgres i Qpid, Apigee zaleca, aby łączna wielkość przydziału pamięci wynosiła od 2,5 GB do 4,5 GB.

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

Zmień rozmiary pamięci sterty

Aby zmienić ustawienia pamięci stosu, zmodyfikuj plik właściwości komponentu. Na przykład w przypadku procesora wiadomości edytuj 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łasność pliku na użytkownika „apigee”, jak w poniższym przykładzie:

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

Jeśli komponent jest zainstalowany na wielu komputerach, np. na procesorze wiadomości, musisz zmodyfikować plik właściwości na wszystkich komputerach, które go hostują.

Poniższa tabela zawiera właściwości, które możesz edytować, aby zmienić rozmiar sterty:

Właściwość Opis
bin_setenv_min_mem

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

To ustawienie odpowiada opcji Java -Xms.

bin_setenv_max_mem

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

To ustawienie odpowiada opcji Java -Xmx.

bin_setenv_meta_space_size

Domyślny rozmiar metadanych klasy. Wartość domyślna to bin_setenv_max_permsize, która domyślnie wynosi 128 MB. W procesorze wiadomości Apigee zaleca ustawienie tej wartości na 256 MB lub 512 MB w zależności od ruchu.

To ustawienie odpowiada opcji Java -XX:MetaspaceSize.

Gdy ustawiasz właściwości rozmiaru stosu w węźle, używaj sufiksu „m”, aby wskazywać megabajty, jak pokazano w poniższym 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 ponownie uruchom komponent:

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

Na przykład:

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

Zmień inne właściwości JVM

W przypadku ustawień Javy, które nie są kontrolowane przez wymienione powyżej właściwości, możesz też określić te wartoś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 jest określona przez inne właściwości. Przykład:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    Nie używaj jednak bin_setenv_ext_jvm_opts do ustawiania wartości -Xms, -Xmx i -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 Private Cloud znajdziesz w tym artykule na forach Edge.