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 Javie.

W tej sekcji znajdziesz domyślne i zalecane rozmiary pamięci sterty Javy, a także proces zmiany wartości domyślnych. Na koniec w tej sekcji opisujemy, 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 Javy dla komponentów chmury prywatnej opartych na Javie:

Komponent Nazwa pliku właściwości Domyślny
Rozmiar sterty
Zalecany
rozmiar sterty
Czas trwania
Cassandra nie dotyczy Skonfigurowane automatycznie1 Skonfigurowane 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–4 GB
Zarządzanie
Serwer zarządzania management‑server.properties 512 MB 512 MB
UI ui.properties 512 MB 512 MB
SymasLDAP nie dotyczy Aplikacja natywna3 Aplikacja natywna3
Opiekun zwierząt 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 Zmiana rozmiaru pamięci sterty.

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

Jeśli podczas testów wydajności wykorzystanie sterty zbliża się do maksymalnego limitu, zwiększ ten limit. Informacje o ustawianiu rozmiaru sterty znajdziesz w artykule Zmiana rozmiaru pamięci sterty.

3 Nie wszystkie komponenty chmury Private Cloud są zaimplementowane w języku Java. Ponieważ nie są oparte na Javie, aplikacje działające natywnie na platformie hosta nie mają konfigurowalnych rozmiarów sterty Javy. Zamiast tego polegają na systemie hosta w zakresie zarządzania pamięcią.

Aby określić, ile pamięci łącznie Apigee zaleca przydzielić do komponentów opartych na Javie na węźle, dodaj wartości wymienione powyżej dla każdego komponentu na tym węźle. Jeśli na przykład węzeł hostuje serwery Postgres 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.

Zmiana rozmiarów pamięci sterty

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

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

Jeśli komponent jest zainstalowany na wielu komputerach, np. na komputerze z procesorem wiadomości, musisz edytować plik właściwości na wszystkich komputerach, na których jest on hostowany.

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. Wartość domyślna jest oparta na wartościach podanych 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 podanych 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 wartość bin_setenv_max_permsize, która domyślnie wynosi 128 MB. W przypadku procesora 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 sterty na węźle, używaj przyrostka „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 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

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 jest określona przez inne właściwości. Na przykład:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

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

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