本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對 RDS for Oracle 執行個體開啟巨型分頁
Amazon RDS for Oracle 支援 Linux 核心巨型分頁,以提高資料庫可擴展性。巨型分頁會造成較小型的分頁資料表,以及耗費在記憶體管理方面較少的 CPU,增加大型資料庫執行個體的效能。如需詳細資訊,請參閱 Oracle 文件中的巨型分頁的概觀
您可以使用 HugePages 搭配 RDS for Oracle 的所有支援版本:
use_large_pages
參數可控制是否已對資料庫執行個體開啟巨型分頁。此參數可能的設定為 ONLY
、FALSE
和 {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_target
和 memory_max_target
設定為 0
。如需設定資料庫執行個體之資料庫參數的詳細資訊,請參閱 的參數組 RDS。
您也可以設定 sga_target
、sga_max_size
和 pga_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 資料庫執行個體類別所使用,即會覆寫 FALSE
的 use_large_pages
設定,並將其設定為 ONLY
。在此情況下,即會傳送關於覆寫的通知給客戶。
巨型分頁在您的資料庫執行個體上作用後,您可以透過啟用增強型監控來檢視巨型分頁資訊。如需更多詳細資訊,請參閱 使用增強型監控來監控作業系統指標。