ヒープ・ダンプ・ディレクトリーの構成
ヒープ・ダンプ・ファイルを解析すると、メモリー問題のトラブルシューティングに役立つ場合があります。
ヒープ・ダンプ・ファイルを解析すると、メモリー問題のトラブルシューティングに役立つ場合があります。-XX:+HeapDumpOnOutOfMemoryErrorオプションを指定してJavaを開始します。このオプションを使用することで、メモリー不足状態の時にヒープ・ダンプがトリガーされます。ヒープ・ダンプ・ファイルは、ヒープをオーバーフローさせる原因となったオブジェクトへの参照で構成されます。データベースがサービスとして実行されている場合、このファイルはデフォルトで作業ルート・ディレクトリーのサブディレクトリーに配置されます。データベースにこのルート・ディレクトリーへの書き込みパーミッションがない場合、ヒープ・ダンプは失敗します。このルート・ディレクトリーが小さすぎてヒープ・ダンプを収容できない場合、そのサーバーはクラッシュします。
ヒープ・ダンプを正常に行い、クラッシュを防ぐには、以下の要件を満たすようにヒープ・ダンプ・ディレクトリーを構成してください。
- データベースがアクセスして書き込みができる
- ヒープ・ダンプを収容できる十分な大きさにする
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra-env.sh |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra-env.sh |
このディレクトリーのサイズは、Javaの-mxオプションの値に基づいて設定します。
手順
ヒープ・ダンプの場所は、cassandra-env.shファイルで設定します。
- cassandra-env.shファイルを編集するために開きます。
-
ヒープ・ダンプ・パスのコメントまでスクロール・ダウンします。
# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof" fi
-
コメントの後の行で、CASSANDRA_HEAPDUMP_DIRを、使用するパスに設定します。
# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR export CASSANDRA_HEAPDUMP_DIR=path if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof" fi
- cassandra-env.shファイルを保存して、再起動します。