Modyfikowanie ustawień pamięci Java

W zależności od wymagań dotyczących ruchu i przetwarzania może być konieczna zmiana rozmiaru sterty pamięci lub rozmiaru metadanych klasy w przypadku węzłów z komponentami chmury prywatnej opartymi na Javie.

W tej sekcji znajdziesz domyślne i zalecane rozmiary sterty pamięci Javy, jak również informacje o tym, jak zmienić ustawienia domyślne. Na koniec opisujemy, jak zmienić inne ustawienia JVM za pomocą plików właściwości.

Domyślne i zalecane rozmiary sterty pamięci

W tabeli poniżej znajdziesz domyślne i zalecane rozmiary sterty pamięci Javy w przypadku 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 Skonfigurowano automatycznie1 Skonfigurowano 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
Nowy interfejs Edge (edge-management-ui) nie dotyczy aplikacji natywnej3 aplikacji natywnej3
SymasLDAP nie dotyczy aplikacji natywnej3 aplikacji natywnej3
Zookeeper zookeeper.properties 2048MB 2048MB
Uwagi

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

2 W przypadku procesorów komunikatów 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. Więcej informacji o ustawianiu rozmiaru sterty znajdziesz w artykule Zmiana rozmiaru sterty pamięci.

3 Nie wszystkie komponenty chmury prywatnej są zaimplementowane w Javie. 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 Apigee zaleca przydzielić komponentom opartym na Javie 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 serwery Postgres i Qpid, Apigee zaleca, aby łączna ilość przydzielonej 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 sterty pamięci

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

Jeśli plik message-processor.properties nie istnieje lub nie istnieje odpowiedni plik .properties dla żadnego komponentu Edge, utwórz go, a następnie zmień jego właściciela 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 maszynach, np. procesor komunikatów, musisz edytować plik właściwości na wszystkich maszynach, które hostują ten komponent.

W tabeli poniżej znajdziesz właściwości, które należy edytować, aby zmienić rozmiary 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 sterty pamięci.

To ustawienie odpowiada opcji -Xms w Javie.

bin_setenv_max_mem

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

To ustawienie odpowiada opcji -Xmx w Javie.

bin_setenv_meta_space_size

Domyślny rozmiar metadanych klasy. Wartość domyślna jest ustawiona na wartość właściwości 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 ruchu.

To ustawienie odpowiada opcji -XX:MetaspaceSize w Javie.

Gdy ustawiasz właściwości rozmiaru sterty w węźle, użyj sufiksu "m", aby wskazać megabajty, jak pokazano 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

Zmiana 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 bin_setenv_ext_jvm_opts do ustawiania wartości -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.