サポートされている RDS for Oracle インスタンスで HugePages をオンにする
Amazon RDS for Oracle は、データベースのスケーラビリティを増大する Linux Kernel の HugePages をサポートしています。HugePages により、ページのテーブルを小さくし、メモリ管理の CPU 経過時間を減少することで、大規模なデータベースインスタンスのパフォーマンスを向上できます。詳細については、Oracle ドキュメントの「HugePages の概要
HugePages は、RDS for Oracle の次のバージョンとエディションで使用できます。
use_large_pages
パラメータは、DB インスタンスで HugePages を有効にするかどうかを制御します。このパラメータに設定できる値は、ONLY
、FALSE
、および {DBInstanceClassHugePagesDefault}
です。Oracle のデフォルト DB パラメータグループでは、use_large_pages
パラメータが {DBInstanceClassHugePagesDefault}
に設定されます。
DB インスタンスで HugePages を自動的に有効にするかどうかを制御するには、DBInstanceClassHugePagesDefault
式の可変をパラメータグループで使用します。値は次のように決定されます。
-
以下の表に示す DB インスタンスクラスの場合、
DBInstanceClassHugePagesDefault
はデフォルトで常にFALSE
と評価されます。use_large_pages
はFALSE
と評価されます。DB インスタンスクラスのメモリが 14 GiB 以上であれば、これらの DB インスタンスクラス用に HugePages を手動で有効化できます。 -
以下の表に示していない DB インスタンスクラスで、DB インスタンスクラスのメモリが 14 GiB 未満の場合は、
DBInstanceClassHugePagesDefault
は常にFALSE
と評価されます。また、use_large_pages
はFALSE
と評価されます。 -
以下の表に示していない DB インスタンスクラスで、インスタンスクラスのメモリが 14 GiB 以上、100 GiB 未満の場合は、
DBInstanceClassHugePagesDefault
はデフォルトでTRUE
と評価されます。また、use_large_pages
はONLY
と評価されます。HugePages を手動で無効にするには、use_large_pages
をFALSE
に設定します。 -
次の表に示していない DB インスタンスクラスで、インスタンスクラスのメモリが 100 GiB 以上の場合は、
DBInstanceClassHugePagesDefault
は常にTRUE
と評価されます。また、use_large_pages
はONLY
と評価され、HugePages を無効にすることはできません。
HugePages は、以下の DB インスタンスクラスに対してはデフォルトで有効になりません。
DB インスタンスクラスファミリー | HugePages がデフォルトで有効になっていない DB インスタンスクラス |
---|---|
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 |
DB インスタンスクラスの詳細については、「DB インスタンスクラスのハードウェア仕様」を参照してください。
新規または既存の DB インスタンスで HugePages を手動で有効にするには、use_large_pages
パラメータを ONLY
に設定します。Oracle 自動メモリ管理 (AMM) では HugePages を使用できません。use_large_pages
パラメータを ONLY
に設定するには、memory_target
と memory_max_target
の両方を 0
に設定する必要もあります。DB インスタンスの DB パラメータを設定する詳細については、「Amazon RDS のパラメータグループ」を参照してください。
sga_target
、sga_max_size
と pga_aggregate_target
パラメータも設定できます。システムグローバルエリア (SGA) とプログラムグローバルエリア (PGA) のメモリパラメータを設定する場合には、値をまとめて追加します。この合計を使用可能なインスタンスメモリ (DBInstanceClassMemory
) から減算して、HugePages の割当量を超える空きメモリを判断します。使用可能なインスタンスメモリ全体の少なくとも 10% または 2 GiB のどちらか少ない方を空きメモリとして残す必要があります。
パラメータを設定したら、DB インスタンスを再起動して変更を有効にする必要があります。詳細については、「 DB インスタンスの再起動」を参照してください。
注記
Oracle DB インスタンスは、フェイルオーバーなしでインスタンスが再起動されるまで、SGA 関連の初期化パラメータへの変更が延期されます。Amazon RDS コンソールで [Reboot (再起動)] を選択しますが、[Reboot with failover (フェイルオーバーありで再起動)] を選択しないでください。AWS CLI で、reboot-db-instance
パラメータを指定して --no-force-failover
コマンドを呼び出します。DB インスタンスは、フェイルオーバー中、またはインスタンスを再起動させる他のメンテナンスオペレーション中に、SGA 関連のパラメータを処理しません。
HugePages を手動で有効化する場合の HugePages のパラメータ設定の例を次に示します。必要に応じて値を設定してください。
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 DB インスタンスクラスによって使用されます。これらのパラメータ設定と use_large_pages
を {DBInstanceClassHugePagesDefault}
に設定した場合、HugePages は 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
パラメータグループは、メモリが 100 GiB 未満の DB インスタンスクラス db.r4 と db.r5 インスタンスの両方で使用されます。これらのパラメータ設定では、db.r4 および db.r5 インスタンスで HugePages が無効になります。
注記
このパラメータグループをメモリが 100 GiB 以上の db.r4 DB インスタンスクラス、または db.r5 DB インスタンスクラスで使用すると、FALSE
の use_large_pages
設定はオーバーライドされ、ONLY
に設定されます。この場合、オーバーライドに関する通知がユーザーに送信されます。
DB インスタンスで HugePages が有効になると、拡張モニタリングを有効にして HugePages の情報を表示できます。詳細については、「拡張モニタリングを使用した OS メトリクスのモニタリング」を参照してください。