問題タブ [jmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory - Jmappingの基礎?
私はそこでいくつかの検索を行いましたが、本当に役立つ情報をあまり見つけることができませんでしたが、誰かがJavaメモリマップの基本を説明しようとすることができますか? どこで/どのように使用するか、それは目的であり、おそらくいくつかの構文例(入力/出力タイプ)? 私はもうすぐ Java のテストを受けますが、これはトピックの 1 つかもしれませんが、私のすべてのチュートリアルを通して、Jmap は出てきませんでした。前もって感謝します
編集:私はツールを参照しています:jmap
jmap - jhat や jmap などのプロファイルを設定して、定期的に、または例外が検出されるたびにスナップショットを作成できますか?
したがって、基本的に私たちの場合、サーバーが不思議なことにダウンし、頻繁に再起動すると正常に動作し始めます。これまで、パターンを確立することができませんでした。スレッド ダンプを調べることは役に立ちましたが、メモリ使用量も分析したいと考えています。これらのツールは、定期的に実行するように設定できますか (スナップショットを定期的に保存し続けます)、または例外またはクラッシュを検出するたびに実行できますか?
java - jmap -histo:ライブ出力は空です
次のコマンドを実行すると、 "$JAVA_HOME/bin/jmap -histo:live " + pid + " > " + fileNameというコマンドを実行する と、空の (空白の) ファイルが生成されることがあります。
なぜこれが起こるのでしょうか?
PSこれは自動テスト(メモリリークのテスト)で使用しています。 オプション -F (強制) を使用すると、ヒストグラムが取得されますが、非ライブ オブジェクトが含まれます。
Thx、助けてください。
java - gcore で取得したコア ダンプ、hprof ファイル形式への jmap 変換が失敗し、エラー メッセージが表示される
最近、JVM のクラッシュの 1 つが発生し、gcore コマンドによって生成されたコア ダンプ ファイルが残りました。ファイルの内容を調べて、クラッシュの原因を正確に突き止めたいと考えています。
コマンドを使用するjmap
と、コア ダンプ ファイルを hprof ファイル形式のファイルに変換できるはずです。これは、VisualVM や他の多くのツールを使用して分析できます。これを試してみましたが、エラーメッセージが表示されます。これは私が実行したコマンドです(同じJVMを使用して、クラッシュが発生したのと同じボックスで):
全体としての応答は次のとおりです。
これはあまり役に立たないエラー メッセージです。権限の問題なのかと思ったのですが、コア ダンプの原因となった JVM を実行したのと同じように、コマンドを実行すると同じメッセージが表示されます。また、コア ファイルが破損していないかどうかも疑問だったのでgdb
、コア ファイルを開いて内容を確認できるかどうかを確認するために を使用することにしました。これは私が得るものです:
gbd
そして、この種の問題を診断するためにそれを使用する方法についてまったく何も知らなかったので、私はやめました。最後のコマンドが何をしたのかさえよくわかりません。注目に値することの 1 つは、出力に正確に 134 の「New Thread」行が存在することです。それぞれが JVM で生成された新しいスレッドを表している場合、これが JVM が停止した理由である可能性があります。
だから私の質問は、実際には3つです -
1)jmap
コマンドがそのエラーメッセージを表示した理由は何ですか?
gdb
2)出力が何を意味するのか考えていますか?
3)gdb
この問題をさらに診断するために使用する方法はありますか?
java - JMAP - java で実行されないダンプ: runtime.exec()
「jmap -dump:format =b;」を実行しようとしました。file」コマンドをruntime.exec()に追加しましたが、date、pwdなどの他のコマンドが正常に機能している場所では実行されません。誰でも理由を知ることができますか?
public static void コマンド (文字列 s) {
java - Java: New Generation 使用 100%、Eden Space 使用 100%、From Space 使用 100%
jmap -heap は、次のような出力を提供します。
New Generation 使用率 100%、Eden Space 使用率 100%、From Space 使用率 100%、To Space 使用率: 0%、Perm Generation 使用率: 38%
これは 100% New, Eden, From space - 問題ですか?
私の JAVA OPTS は次のとおりです。
クイックガベージコレクションがたくさん見られます。ただし、JConsole などのツールを使用してもメモリ リークは発生しません
メモリ使用量は、http: //tinypic.com/view.php?pic=wo213&s=6で確認できます。
JDK 1.6 が使用されています。
garbage-collection - jmap -histo は完全なガベージ コレクションをトリガーできますか?
jmap -histo:live は、生きているオブジェクトを決定するために完全な gc をトリガーすることがわかっています。
liveオプションが使用されている場合、jmapはガベージコレクションを強制しますか?
jmap -histo はヒープ内のすべてのオブジェクト (若い世代と古い世代のオブジェクト) を考慮するため、私の要点は、jmap -histo は完全な gc もトリガーできるということです。ただし、 jmap -histo が完全な gc をトリガーするかどうかについての確かなドキュメントに遭遇できませんでした。
jmap -histo は完全なガベージ コレクションをトリガーできますか?
java - どのオブジェクトがどの世代にあるかをどのように分析できますか?
ガベージコレクションが可能になる前に、さまざまな長さの時間にわたってオブジェクトが存在することを期待しているオブジェクトを使用した、実行時間の長い(数日)アプリケーションがあります。4つのカテゴリがあるとしましょう。
- 非常に短命(<1秒)
- ユーザーの注意を引く間(1秒<18時間)生きている
- 毎日のデータ(〜24h)
- 「永遠」(ごくわずか、アプリケーションの寿命)
チューニングを支援するために、Java 6 Hotspot VMを使用して、実際のデータがテニュア世代に取り込まれていることを確認する方法を見つけたいと思います。jmapを使用してHPROFファイルを生成することには、世代情報が含まれていないようです。この情報を取得する別の方法はありますか?
jvm - Javaヒープダンプのアクセス許可
Linuxマシン(およびおそらくUnixマシン)で生成されたJavaヒープダンプでは、アクセスが制限されています。ヒープは、プロセスの所有者のみが読み取ることができます(ACLマスクは600に設定されています)。これはセキュリティ上の理由によるものだと理解しています。ただし、動作を参照または説明しているドキュメントは見つかりませんでした。誰かが私にドキュメント(もしあれば)を教えてもらえますか?また、この動作をオーバーライドする方法はありますか?
object - jmapとオブジェクトサイズ
JVMでjmapを実行してメモリリークを理解しようとすると、奇妙なことがわかりました。8java.lang.Long
バイトではなく24バイトを使用することです。
私の間違いはどこにあるのか教えてもらえますか?
WTF ????