修改 Java 記憶體設定

視流量和處理需求而定,您可能需要變更執行 Java 型私有雲元件的節點堆積記憶體大小或類別中繼資料大小。

本節提供預設和建議的 Java 堆積記憶體大小,以及變更預設值的程序。最後,本節說明如何使用屬性檔案變更其他 JVM 設定。

預設和建議的堆積記憶體大小

下表列出以 Java 為基礎的私有雲元件,其預設和建議的 Java 堆積記憶體大小:

元件 屬性檔案名稱 預設
堆積大小
建議
堆積大小
執行階段
Cassandra 不適用 自動設定1 自動設定1
訊息處理器 message‑processor.properties 512 MB 3GB - 6GB2
路由器 router.properties 512 MB 512 MB
數據分析
Postgres 伺服器 postgres‑server.properties 512 MB 512 MB
Qpid 伺服器 qpid‑server.properties 512 MB 2GB - 4GB
管理
管理伺服器 management‑server.properties 512 MB 512 MB
新版 Edge UI (edge-management-ui) 不適用 原生應用程式3 原生應用程式3
SymasLDAP 不適用 原生應用程式3 原生應用程式3
Zookeeper zookeeper.properties 2048 MB 2048 MB
附註

1 Cassandra 會在啟動時動態計算堆積大小上限。目前為系統總記憶體的一半,上限為 8192 MB。如要瞭解如何設定堆積大小,請參閱「變更堆積記憶體大小」。

2 對於訊息處理器,Apigee 建議您將堆積大小設為 3 GB 至 6 GB 之間。請先執行效能測試,再將堆積大小增加至 6 GB 以上。

如果在效能測試期間,堆積用量接近上限,請提高上限。如要瞭解如何設定堆積大小,請參閱「變更堆積記憶體大小」。

3 並非所有私有雲元件都是以 Java 實作。由於這些應用程式並非以 Java 為基礎,因此在主機平台上原生執行的應用程式沒有可設定的 Java 堆積大小,而是依賴主機系統進行記憶體管理。

如要判斷 Apigee 建議在節點上為 Java 型元件分配多少總記憶體,請將該節點上每個元件的上述值加總。舉例來說,如果節點同時代管 Postgres 和 Qpid 伺服器,Apigee 建議您將記憶體分配總量設為 2.5 GB 到 4.5 GB 之間。

如需必要硬體 (例如 RAM) 清單,請參閱「安裝需求」。

變更堆積記憶體大小

如要變更堆積記憶體設定,請編輯元件的屬性檔案。舉例來說,如果是訊息處理器,請編輯 /opt/apigee/customer/application/message-processor.properties 檔案。

如果 message-processor.properties 檔案不存在,或任何 Edge 元件的對應 .properties 檔案不存在,請建立該檔案,然後將檔案擁有權變更為「apigee」使用者,如下列範例所示:

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

如果元件安裝在多部電腦上 (例如訊息處理器),則必須在所有裝載元件的電腦上編輯屬性檔案。

下表列出可編輯來變更堆積大小的屬性:

屬性 說明
bin_setenv_min_mem

堆積大小下限。預設值是根據「預設和建議的堆積記憶體大小」一節中列出的值而定。

這項設定對應至 Java -Xms 選項。

bin_setenv_max_mem

堆積大小上限。預設值取決於「預設和建議的堆積記憶體大小」中列出的值。

這項設定對應至 Java -Xmx 選項。

bin_setenv_meta_space_size

預設類別中繼資料大小。預設值會設為 bin_setenv_max_permsize 的值,預設為 128 MB。Apigee 建議您在訊息處理器上,根據流量將這個值設為 256 MB 或 512 MB。

這項設定對應於 Java -XX:MetaspaceSize 選項。

在節點上設定堆積大小屬性時,請使用「m」後置字串表示 MB,如以下範例所示:

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

在屬性檔案中設定值後,請重新啟動元件:

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

例如:

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

變更其他 JVM 屬性

如果 Java 設定不受上述屬性控制,您也可以在任何 Edge 元件的對應屬性檔案中設定下列屬性:

  • bin_setenv_ext_jvm_opts:設定其他屬性未指定的任何 Java 屬性。例如:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    不過,請勿使用 bin_setenv_ext_jvm_opts 設定 -Xms、-Xmx 或 -XX:MetaspaceSize,因為這些值是由上述屬性控制。

如需設定私有雲元件記憶體的其他提示,請參閱 Edge 論壇的這篇文章。