13.1.4 HADBサーバ開始時間の短縮(HugePagesの適用)
ここでは,HADBサーバの開始時間を短縮する方法について説明します。
HADBのグローバルバッファはOSの共有メモリを使用しています。そのため,HADBのサーバ定義で大量のグローバルバッファを確保する定義を指定すると,OSのメモリを管理するTLB内に要求されたアドレスがない状態(TLBミス)が多発します。その結果,共有メモリのアクセス性能が低下し,HADBサーバの開始時間が長くなります。
このような場合,HADBの共有メモリにHugePagesを適用してください。HugePagesはTLBのページテーブルを拡張する機能です。TLBのページテーブルを拡張することでTLBミスが少なくなり,共有メモリへのアクセス性能が改善されます。
HADBの共有メモリにHugePagesを適用する手順を次に示します。
設定方法
-
HADBサーバを終了する
adbstopコマンドを実行して,HADBサーバを終了してください。
-
HugePagesを有効にするために,次のカーネルパラメタを指定する
-
vm.nr_hugepagesパラメタ
-
vm.hugetlb_shm_groupパラメタ
-
soft memlockパラメタ
-
hard memlockパラメタ
各カーネルパラメタの詳細については,「6.2 カーネルパラメタの見積もり」を参照してください。
-
-
OSを再起動する
カーネルパラメタの指定を変更した場合,OSを再起動してください。
-
サーバ定義を変更する
サーバ定義にadb_sys_shm_huge_page_sizeオペランドを指定してください。
また,手順2.でvm.nr_hugepagesパラメタの指定値を変更した場合,サーバ定義のadb_sys_memory_limitオペランドの指定値も変更してください。
-
HADBサーバを開始する
adbstartコマンドを実行して,HADBサーバを開始してください。
- メモ
-
サーバ定義のadb_sys_shm_huge_page_sizeオペランド,adb_sys_memory_limitオペランドについては,「7.2.2 性能に関するオペランド(set形式)」のadb_sys_shm_huge_page_sizeオペランド,adb_sys_memory_limitオペランドを参照してください。