對 RDS for Oracle 執行個體開啟巨型分頁 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對 RDS for Oracle 執行個體開啟巨型分頁

Amazon RDS for Oracle 支援 Linux 核心巨型分頁,以提高資料庫可擴展性。巨型分頁會造成較小型的分頁資料表,以及耗費在記憶體管理方面較少的 CPU,增加大型資料庫執行個體的效能。如需詳細資訊,請參閱 Oracle 文件中的巨型分頁的概觀

您可以使用 HugePages 搭配 RDS for Oracle 的所有支援版本:

use_large_pages 參數可控制是否已對資料庫執行個體開啟巨型分頁。此參數可能的設定為 ONLYFALSE{DBInstanceClassHugePagesDefault}。在 Oracle 的預設資料庫參數群組中,use_large_pages 參數是設為 {DBInstanceClassHugePagesDefault}

若要控制是否對資料庫執行個體自動開啟巨型分頁,您可以在參數群組中使用 DBInstanceClassHugePagesDefault 公式變數。該值的判斷方式如下所示:

  • 針對下表提及的資料庫執行個體類別,依預設 DBInstanceClassHugePagesDefault 一律會評估為 FALSE,而 use_large_pages 則評估為 FALSE。如果資料庫執行個體類別擁有至少 14 GiB 的記憶體,則您可對這些資料庫執行個體手動開啟巨型分頁。

  • 針對下表未提及的資料庫執行個體類別,如果執行個體類別有少於 14 GiB 的記憶體,DBInstanceClassHugePagesDefault 一律會評估為 FALSE。此外, use_large_pages 評估為 FALSE

  • 針對下表未提及的資料庫執行個體類別,如果執行個體類別有至少 14 GiB,且少於 100 GiB 的記憶體,依預設 DBInstanceClassHugePagesDefault 會評估為 TRUE。此外, use_large_pages 評估為 ONLY。您可將 use_large_pages 設定為 FALSE,手動關閉巨型分頁。

  • 針對下表未提及的資料庫執行個體類別,如果執行個體類別有至少 100 GiB 的記憶體,DBInstanceClassHugePagesDefault 一律會評估為 TRUE。此外,use_large_pages 評估為 ONLY 且無法停用巨型分頁。

針對下列資料庫執行個體類別,依預設不會開啟巨型分頁。

資料庫執行個體類別系列 依預設不會開啟具有巨型分頁的資料庫執行個體類別

db.m5

db.m5.large

db.m4

db.m4.large、db.m4.xlarge、db.m4.2xlarge、db.m4.4xlarge、db.m4.10xlarge

db.t3

db.t3.micro、db.t3.small、db.t3.medium、db.t3.large

如需資料庫執行個體類別的詳細資訊,請參閱 的資料庫執行個體類別的硬體規格

若要對新的或現有的資料庫執行個體手動開啟巨型分頁,請將 use_large_pages 參數設定為 ONLY。您無法將巨型分頁用於 Oracle 自動記憶體管理 (AMM)。如果您將參數 use_large_pages 設定為 ONLY,則必須也將 memory_targetmemory_max_target 設定為 0。如需設定資料庫執行個體之資料庫參數的詳細資訊,請參閱 的參數組 RDS

您也可以設定 sga_targetsga_max_sizepga_aggregate_target 參數。設定系統全域區域 (SGA) 和程式全域區域 (PGA) 記憶體參數時,請將值一起新增。從您的可用執行個體記憶體 (DBInstanceClassMemory) 減去這個總計,以判斷巨型分頁配置以外的可用記憶體。您必須保留至少 2 GiB 的可用記憶體,或可用執行個體記憶體總數的 10%,以較小者為準。

設定參數之後,必須將您的資料庫執行個體重新開機,變更才能生效。如需更多詳細資訊,請參閱 重新啟動中的資料庫執行個體

注意

Oracle 資料庫執行個體會延遲對 SGA 相關初始化參數的變更,直到您重新啟動執行個體而不進行容錯移轉為止。在 Amazon RDS 主控台中,選擇 Reboot (重新開機),但不要選擇 Reboot with failover (使用容錯移轉重新開機)。在 AWS CLI中,使用 reboot-db-instance 參數呼叫 --no-force-failover 命令。在容錯移轉期間或導致執行個體重新啟動的其他維護作業期間,資料庫執行個體不會處理 SGA 相關的參數。

下列是可手動啟用巨型分頁之巨型分頁的參數組態範例。您應該設定這些值以符合您的需求。

memory_target = 0 memory_max_target = 0 pga_aggregate_target = {DBInstanceClassMemory*1/8} sga_target = {DBInstanceClassMemory*3/4} sga_max_size = {DBInstanceClassMemory*3/4} use_large_pages = ONLY

假設參數群組中設定了下列參數值。

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = {DBInstanceClassHugePagesDefault}

參數群組由具有少於 100 GiB 記憶體的 db.r4 資料庫執行個體類別所使用。使用這些參數設定並將 use_large_pages 設定為 {DBInstanceClassHugePagesDefault},巨型分頁會在 db.r4 執行個體上開啟。

考慮在參數群組中設定了下列參數值的另一個範例。

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = FALSE

參數群組是由 db.r4 DB 資料庫執行個體類別和 db.r5 資料庫執行個體類別所使用,兩個的記憶體都小於 100 GiB。使用這些參數設定,巨型分頁會在 db.r4 和 db.r5 執行個體上關閉。

注意

如果此參數群組是由具有至少 100 GiB 記憶體的 db.r4 資料庫執行個體類別或 db.r5 資料庫執行個體類別所使用,即會覆寫 FALSEuse_large_pages 設定,並將其設定為 ONLY。在此情況下,即會傳送關於覆寫的通知給客戶。

巨型分頁在您的資料庫執行個體上作用後,您可以透過啟用增強型監控來檢視巨型分頁資訊。如需更多詳細資訊,請參閱 使用增強型監控來監控作業系統指標