私は、数日後にサービスの1つが死んでいるのを見た後、logstash、newrelicコレクタなどのJavaサービスをほとんど実行していないノードをクラウドに持っています。殺したUID 10112、(Java)の合計-VM、プロセス7912:3912228kB、アノン-RSS VAR/log/messagesにはLinuxでJavaサービスが終了しました。動作を理解するのに助けが必要
を、次の11月21日午前九時34分26秒XXX-YYYY-サービス-18aのカーネルは言います: 867496kB、file-rss:268kB
死んだ後、私はmemの総使用量を調べました。私はこれが助けになるとは思っていませんが、現在どのくらいのメモリを使用しているのかを伝えたいだけです。 2.9gの845Mスワップ:0B 0B 0B
-/+バッファ/キャッシュ3.7gの3.3G 410M 144K 42M 392M :メモリーコンフィグ無料-mh 総使用無料の共有バッファは、Memのがキャッシュされました
Javaサービスは、Xmxの値
newRelic -Xms256m -Xmx1024m(2つのインスタンス) logstash以下使用するように構成されています-Xmx500m 他のJavaサービス: - すべての5つのサービスが-Xms256m -Xmx1024m
で構成されているので、この構成に基づいて、トータルサービスは限りが消費されていないとして罰金である、システムが持っているより多くのメモリを使用するように設定されていますそれ。しかし、何が起こったのか、起こったことをどうやってデバッグするのかを理解する必要があります。すべてのサービスはヒープをダンプするように設定されていますが、コアファイルはどこにも表示されません(ただし、システムにはヒープをダンプすることもできません)メッセージは?
私はプロセスが殺されることについて説明するこの記事に出くわしました。 https://unix.stackexchange.com/questions/128642/debug-out-of-memory-with-var-log-messages
誰かが経験に基づいて説明したことがありますか?
おそらくカーネルがプロセスをただちに終了させるカーネルOOMではなく、* Java * OOMに遭遇したときにヒープをダンプするように設定されています。しかし、実際には、これはプログラミング上の問題ではないので、スーパーユーザ/サーバの障害で試してみるべきです。 – RealSkeptic
あなたは「Linuxで殺された」と言っていますが、他のどのOSでも正常に動作していますか? "nohup"と何か関係があるかどうか疑問に思うだけです。 – BretC
私はLinux上でしか行っていないので、私は他のOSについて知りません。 – Milind