Modyfikowanie ustawień pamięci Java

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

W tej sekcji znajdziesz informacje o domyślnych i zalecanych rozmiarach pamięci stosu Java oraz procesie zmiany domyślnych ustawień. Na koniec w tej sekcji opisaliśmy, 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 Java:

Komponent Nazwa pliku właściwości Domyślny
Rozmiar stosu
Zalecane
Rozmiar stosu
Czas działania
Cassandra nie dotyczy Konfiguracja automatyczna1 Konfiguracja automatyczna1
procesor komunikatów message-processor.properties 512 MB 3 GB – 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 512MB 512 MB
Interfejs użytkownika ui.properties 512 MB 512MB
OpenLDAP nie dotyczy Aplikacja natywna3 Aplikacja natywna 3
Miłośnik zoo zookeeper.properties 2048 MB 2048MB
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 stosu znajdziesz w sekcji Zmienianie rozmiaru pamięci stosu.

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

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

3 Nie wszystkie komponenty Private Cloud są implementowane w Javie. Ponieważ nie są one oparte na Javie, aplikacje działające natywnie na platformie hosta nie mają konfigurowalnych rozmiarów stosu Javy. Zamiast tego korzystają z systemu hosta do zarządzania pamięcią.

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

Zmiana rozmiarów pamięci stosu

Aby zmienić ustawienia pamięci stosu, 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 ż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 komputerach, na przykład przetwarzacz 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 stosu:

Właściwość Opis
bin_setenv_min_mem

Minimalny rozmiar stosu. 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 stosu. Wartość domyślna jest określana na podstawie wartości podanych w sekcji Domyślne i zalecane rozmiary pamięci podręcznej.

To ustawienie odpowiada opcji Java -Xmx.

bin_setenv_meta_space_size

Domyślny rozmiar metadanych klasy. Wartość domyślna to wartość parametru bin_setenv_max_permsize, czyli domyślnie 128 MB. W przypadku usługi Message Processor firma 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.

Podczas ustawiania właściwości rozmiaru stosu w węźle użyj przyrostka „m” do wskazania megabajtów, 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ń Java, które nie są kontrolowane przez wymienione powyżej właściwości, możesz też przekazać dodatkowe flagi JVM lub wartości dla dowolnego komponentu Edge. Pliki *.properties będą odczytywane przez Basha i powinny być ujęte w '(cudzysłowie pojedyncze), aby zachować dosłowne znaki, lub "(cudzysłowie podwójne), jeśli potrzebujesz rozszerzenia powłoki.

  • 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 atrybutu bin_setenv_ext_jvm_opts do ustawiania wartości -Xms, -Xmx ani -XX:MetaspaceSize, ponieważ wartości te są kontrolowane przez wymienione powyżej właściwości.

Więcej wskazówek dotyczących konfigurowania pamięci dla komponentów Private Cloud znajdziesz w tym artykule na forach Edge.