修改 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
UI ui.properties 512 MB 512 MB
OpenLDAP 不適用 原生應用程式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 設定,您也可以傳入 JVM 標記或值 (適用於任何 Edge 元件)。系統會用以下程式碼讀取 *.properties 檔案: 由 Bash 分隔,且應以 '(單引號) 括住,才能保留常值字元或 "(雙引號)。

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

    不過,不要使用 bin_setenv_ext_jvm_opts-Xms-Xmx-XX:MetaspaceSize 設為這些值 由上述屬性控制。

如需為 Private Cloud 元件設定記憶體的其他提示,請參閱 本 這篇文章