HugePagesの設定方法(Oracle Linux 5/Kernel 2.6.18の場合)
次に64bit版 Oracle Linux5(Kernel 2.6.18)におけるHugePagesの設定方法を紹介します。
1. memlock制限の設定
/etc/security/limits.confファイルを編集し、memlockパラメータを、物理メモリよりやや小さい程度に設定します。
* soft memlock 72000000
* hard memlock 72000000
※72000000Kbyte = 72Gbyteに設定した例。メモリ搭載容量によって変更します
2. Hugepages確保量の計算
共有メモリに確保される量をHugepagesのサイズとします。目安として、DBインスタンスのSGAサイズ+ASMインスタンスのSGAサイズ+余裕値で検討します。
3. Hugepagesの設定
2で計算したHugepagesのサイズをHugepagesの1ページあたりのサイズで割り、Hugepagesのページ数を計算します。Hugepagesの1ページあたりのサイズは以下で確認可能です。
# grep Hugepagesize /proc/meminfo
Hugepagesize: 2048 kB
上記例では、1ページあたり2MBであるため、Hugepagesの確保ページ数は、(2の結果)÷2M となります。次に、上記で求めた確保ページ数を/etc/sysctl.confのvm.nr_hugepagesに設定します。
vm.nr_hugepages = (Hugepagesのページ数)
上記設定後、サーバーを再起動すると、Hugepagesの設定が行われます。Hugepagesのメモリ確保量および使用量を確認するためには、以下コマンドを用います。
# grep HugePages /proc/meminfo
HugePages_Total: 26000 <--- Hugepagesの確保ページ数
HugePages_Free: 14463 <--- Hugepagesの空きページ数
HugePages_Rsvd: 752 <--- Hugepagesの割り当て済みページ数