はじめに
VoltDBの最大ヒープサイズを変更する方法は以下の公式ドキュメントに記載されています。
Administrator's Guide
https://docs.voltdb.com/AdminGuide/HostConfigProcOpts.php
デフォルトでヒープサイズは2GBですので、3GBに変更してみます。
インメモリデータベースVoltDBの最大ヒープサイズを変更する
VoltDB中のDBのデータはオフヒープに保存されており、格納するデータ量とオンヒープ(ヒープサイズ)はほとんど関連がありません。
オンヒープのメモリはVoltDBのサーバ上の処理(プロシージャの実行等)で使用されます。
注意点
・スループットが高いほど、メモリ不足を避けるために必要な最大ヒープ量が大きくなります。
・通常最大ヒープサイズは2ギガバイト(2048)が推奨されます。実稼働環境では、スキーマのサイズ(テーブル数)、ホストあたりのサイト数、使用されている耐久性および可用性の機能から、必要なヒープサイズをより正確に測定できます。詳細は、VoltDB Planning Guideを参照してください。
変更方法
psで、現在のヒープサイズを確認します。「-Xmx2048m」となっており、最大ヒープサイズが2GBであることがわかります。
# ps -efl | grep volt
0 S root 3015 1 12 80 0 - 1051363 futex_ 00:17 ? 00:00:02 /usr/bin/java -Xmx2048m -server ~省略~
org.voltdb.VoltDB probe placementgroup 0 voltdbroot /opt/voltdb/voltdbroot mesh volt1 hostcount 1
/etc/profile.d/voltdb.shを修正します。
# vi /etc/profile.d/voltdb.sh
export VOLTDB_HEAPMAX="3072"
変更した設定を読み込んで、確認します。
# source /etc/profile
# export | grep VOLTDB_HEAPMAX
declare -x VOLTDB_HEAPMAX="3072"
VoltDB起動後に最大ヒープサイズが3GBに変更されていることを確認します。
# ps -efl | grep volt
0 S root 3452 2946 99 80 0 - 1320480 futex_ 00:25 pts/0 00:00:02 /usr/bin/java -Xmx3072m -server ~省略~
org.voltdb.VoltDB probe placementgroup 0 voltdbroot /opt/voltdb/voltdbroot mesh volt1 hostcount 1
その他
他のJavaランタイム・オプションを変更する場合は、VOLTDB_OPTSに設定します。