ヒープ・ダンプ・ディレクトリーの構成

ヒープ・ダンプ・ファイルを解析すると、メモリー問題のトラブルシューティングに役立つ場合があります。

ヒープ・ダンプ・ファイルを解析すると、メモリー問題のトラブルシューティングに役立つ場合があります。-XX:+HeapDumpOnOutOfMemoryErrorオプションを指定してJavaを開始します。このオプションを使用することで、メモリー不足状態の時にヒープ・ダンプがトリガーされます。ヒープ・ダンプ・ファイルは、ヒープをオーバーフローさせる原因となったオブジェクトへの参照で構成されます。データベースがサービスとして実行されている場合、このファイルはデフォルトで作業ルート・ディレクトリーのサブディレクトリーに配置されます。データベースにこのルート・ディレクトリーへの書き込みパーミッションがない場合、ヒープ・ダンプは失敗します。このルート・ディレクトリーが小さすぎてヒープ・ダンプを収容できない場合、そのサーバーはクラッシュします。

DataStaxヘルプ・センターでは、トラブルシューティング情報も提供しています。

ヒープ・ダンプを正常に行い、クラッシュを防ぐには、以下の要件を満たすようにヒープ・ダンプ・ディレクトリーを構成してください。

  • データベースがアクセスして書き込みができる
  • ヒープ・ダンプを収容できる十分な大きさにする

このディレクトリーのサイズは、Javaの-mxオプションの値に基づいて設定します。

cassandra-env.sh

cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra-env.sh
tarボール・インストール installation_location/resources/cassandra/conf/cassandra-env.sh

手順

ヒープ・ダンプの場所は、cassandra-env.shファイルで設定します。

  1. cassandra-env.shファイルを編集するために開きます。
  2. ヒープ・ダンプ・パスのコメントまでスクロール・ダウンします。
    # 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
  3. コメントの後の行で、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
  4. cassandra-env.shファイルを保存して、再起動します。