Huge Pageを使用すると、大量のメモリーを使用するシステムにおいて、Oracle Databaseのパフォーマンスが大幅に向上します。 Oracle Database Exadata Cloud Machineは、デフォルトでHuge Pagesを使用する構成設定を提供します。ただし、Huge Pagesの設定を最適化するために手動で調整することができます。
Huge PageはLinuxカーネル2.6に統合されている機能です。 Huge Pageを有効化すると、オペレーティング・システムで大規模なメモリー・ページをサポートすることが可能になります。 Huge Pageを使用することで、仮想メモリー・アドレスと物理メモリー・アドレス間のマッピングを保存するLinuxページ表の管理に必要なシステムCPUとメモリー・リソースが削減され、システムのパフォーマンスが改善されます。 Oracle Databaseの場合、Huge Pageを使用すると、システム・グローバル領域(SGA)に関連するページ表エントリの数を大幅に削減できます。
Exadata Cloud Machine環境では、標準ページは4 KBですが、巨大ページはデフォルトで2 MBです。 したがって、50 GBのSGAを使用するExadata Cloud MachineのOracle Databaseには、SGAを格納するための標準の13ページ、107ページ、200ページが必要です。 結果として、ページ表がより小さくなり、保存するために必要なメモリーとアクセスおよび管理するCPUリソースも少なくなります。
巨大なページのデフォルト構成
デフォルトでは、巨大なページは、Exadata Cloud Machineインスタンスの作成後に最初に作成されるデータベース・デプロイメントである、スタータ・データベース・デプロイメント用にのみ構成されます。 オペレーティング・システムで構成されたHuge Pagesの数は、SGAのサイズに基づいています。
スタータ・データベースのデプロイメントは、インスタンス・パラメータ設定USE_LARGE_PAGES=ONLY
を使用して構成されます。 この設定では、SGAはHuge Pageを使用するように強制されます。
追加のデータベース・デプロイメントでは、デフォルトでHuge Pageを使用するように構成されません。 追加のデータベースでHuge Pageを使用するには、手動で構成する必要があります。
巨大なページの構成の調整
Oracle DatabaseのHuge Pagesの構成は2段階のプロセスです:
オペレーティング・システム・レベルでは、Huge Pageに割り当てられる全体のメモリーは/etc/sysctl.conf
ファイルのvm.nr_hugepages
エントリで制御されます。 これは環境内の各計算ノードで設定されます。すべての計算ノードで、この設定を同じにすることをお薦めします。 Huge Page割当てを変更するには、各計算ノードで次のコマンドをrootユーザーとして実行します。
# sysctl -w vm.nr_hugepages=value
ここで、value
は割り当てるHuge Pageの数です。
Exadata Cloud Machine環境では、各Huge Pageはデフォルトで2 MBです。 そのため、Huge Pageに50 GBのメモリーを割り当てるには、次のコマンドを実行します。
# sysctl -w vm.nr_hugepages=25600
Oracle Databaseレベルでは、Huge Pageの使用はUSE_LARGE_PAGES
インスタンス・パラメータ設定で制御されます。 この設定はクラスタ・データベース内の各データベース・インスタンスに適用されます。データベース・デプロイメントに関連付けられているすべてのデータベース・インスタンスで、この設定を同じにすることをお薦めします。 次のオプションを使用できます。
TRUE
- Huge Pageが使用可能である場合に、データベース・インスタンスがこれを使用できることを指定します。 11.2.0.3以降のすべてのOracle Databaseでは、Huge Pageを使用してできるかぎりSGAに割り当てられます。 Huge Page割当てを使い切ると、標準メモリー・ページが使用されます。
FALSE
- データベース・インスタンスでHuge Pageを使用しないことを指定します。 Huge Pageが使用可能である場合、一般的にこの設定はお薦めできません。
ONLY
- データベース・インスタンスでHuge Pageを使用する必要があることを指定します。 この設定では、SGA全体がHuge Pageに収まらない場合、データベース・インスタンスの起動に失敗します。
オペレーティング・システムまたはOracle Databaseのいずれかのレベルで調整を行った場合は、構成全体が機能することを確認する必要があります。
Huge Pageの一般的な概要およびHuge Pageの構成の詳細は、リリース11.2または12.1用のOracle Database管理者リファレンスfor Linux and UNIX-Based Operating Systemsを参照してください。 また、リリース11.2、12.1または12.2用のOracle DatabaseリファレンスのUSE_LARGE_PAGES
に関する項も参照してください。