カサンドラがhprofファイルを使用する必要がないので、ダンプしないようにしたいと思います。Cassandraがhprofファイルをダンプするのを防ぐ
また、非常に限られたディスク容量(100GBのうち50GBがデータ用に使用されます)があり、これらのファイルは「停止」と言う前にすべてのディスク容量を吸収します。
どうすればよいですか?
これらのファイルを時々消去するために使用できるシェルスクリプトはありますか?
カサンドラがhprofファイルを使用する必要がないので、ダンプしないようにしたいと思います。Cassandraがhprofファイルをダンプするのを防ぐ
また、非常に限られたディスク容量(100GBのうち50GBがデータ用に使用されます)があり、これらのファイルは「停止」と言う前にすべてのディスク容量を吸収します。
どうすればよいですか?
これらのファイルを時々消去するために使用できるシェルスクリプトはありますか?
それはカサンドラが-XX:+HeapDumpOnOutOfMemoryError
Javaオプションで始まるので起こります。あなたが分析したいのであれば良いものです。また、Cassandraに利用可能なメモリを調整する必要があることを示すヒープダンプがたくさんある場合は、
私はそれを試していません。しかし、このオプションを阻止するために、あなたは本当に必要なだけでなく、このブロックをコメントし、ないかもしれませんが、$CASSANDRA_HOME/conf/cassandra-env.sh
JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
必要に応じて、以下の行をコメント、私は思います。このブロックは、私が推測する1.0以上のバージョンで利用可能です。私は0.7.3でこれを見つけることができません。
# 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
これが機能するかどうか教えてください。
更新
...私はカサンドラがシャットダウン/クラッシュしたとき、それはJVMがそれを投げていると思います。そのような事態を防ぐための方法はありますか?
あなたは完全にJVMのheapdumpを無効にしたい場合、あなたはそれはまだ動作しませんheapdumpパスを指すようにcassandra-env.shを更新した場合でも、ここhow to disable creating java heap dump after VM crashes?
私はCassandraを使用していないことを認めますが、コンパイル時に有効にしない限り、あるいはプログラムがOutofMemoryExceptionを経験しない限り、何かhprofファイルをダンプしないでください。だからそこを見てみてください。
シェルスクリプトに関して、ファイルが特定の場所にダンプされている場合は、このコマンドを使用してすべての* .hprofファイルを削除できます。
find /my/location/ -name *.hprof -delete
これは検索に一致するすべてのファイルを削除find
から-delete
ディレクティブを使用しています。詳細を絞る必要がある場合は、manページで検索オプションを探してください。あなたは「時間の時間に」要件を満たすことになる、ある時点でスクリプトを実行するためにcron
を使用することができます
、ほとんどのLinuxディストリビューションをインストールするcronを持っている、とcrontab
ファイルのオフ動作します。あなたはcrontabについてもっと知ることができますman crontab
ありがとうございます!私もそれを考え出した! 実際には、 "cassandra-XXX.hprof"の代わりに "pid-XXX.hprof"という名前が付けられているので、Cassandraインスタンスを中断したときにhprofファイルが出てくるので、 シェルスクリプトに感謝します。私はそれらを実装します。 :) –
を参照してください。その理由は、起動スクリプト/ etc/initからのものでした。D /カサンドラ・デフォルトを作成し、この行があるHeapDumpパス
start-stop-daemon -S -c cassandra -a /usr/sbin/cassandra -b -p "$PIDFILE" -- \
-p "$PIDFILE" -H "$heap_dump_f" -E "$error_log_f" >/dev/null || return 2
私は成り上がりの専門家ではないが、私がやったことは、単に複製を作成するのparamを取り除きました。別の奇妙な観測でも、ps auxを介してcassandraプロセスをチェックすると、いくつかのパラメータが2回書き込まれることがわかります。あなたがソースのcassandra-env.shと$ JVM_OPTSを印刷すると、それらの変数は大丈夫です。
私もそれをコメントアウトすることを考えていた。しかし、私が気づいたhprofファイルは、 "cassandra-NNN.hprof"というテンプレートに従わず、 "pid-XXX.hprof"というテンプレートに従っていなかったので、CassandraがクラッシュしたりシャットダウンしたときにJVMがスローしてしまうと思います。そのような事態を防ぐための方法はありますか? –
@ Salocin.TEN更新を参照してください – Nishant
$ CASSANDRA_HOME/conf/cassandra-env.shのブロックをコメントアウトすることは実際には機能しませんでした。しかし、リンクと.hprofの削除cronジョブのおかげで、すべてがうまくいきました。 もう一度お世話になりました。 –