ホームページ  >  記事  >  Java  >  「jmap」で「-F」オプションを使用する必要があるのはどのような場合ですか?

「jmap」で「-F」オプションを使用する必要があるのはどのような場合ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-07 02:31:02794ブラウズ

When Should You Use the

「-F」オプションを指定して jmap を実行する

ヒープ ダンプをキャプチャするために jmap を実行すると、「ソケットを開けません」というエラーが発生する場合がありますファイル」は、ターゲット プロセスが応答しないか、HotSpot VM がロードされていない場合に返されます。これに対処するには、「-F」オプションを使用してプロセスへの接続を強制します。

jmap と jmap のメカニズムの違い -F

jmap と jmap - F は、ターゲット JVM と通信するために別のメカニズムを使用します。

jmap

「-F」オプションを指定しないと、jmap は動的アタッチ メカニズムを使用します。これには次の手順が含まれます。

  1. ターゲット プロセスの作業ディレクトリまたは /tmp ディレクトリにファイルを作成します。
  2. ターゲット プロセスに SIGQUIT シグナルを送信します。
  3. プロセスは UNIX ドメインを作成します
  4. ソケットに接続し、ダンプヒープ コマンドを JVM に送信して直接実行します。

jmap -F

「-F」オプションを使用すると、jmap の動作が異なります。

  1. ターゲット JVM で PTRACE_ATTACH を呼び出し、SIGSTOP シグナルに応答して JVM を一時停止します。
  2. JVM メモリを読み取ります。 PTRACE_PEEKDATA を使用します。これは、メモリを一度に 1 ワードずつ読み取るため、遅いプロセスです。
  3. 特定の JVM バージョンの知識に基づいて JVM 内部構造を再構築します。これには、jmap とターゲット プロセスが同じである必要があります。 JDK バージョン。

「-F」オプションの使用

ターゲット プロセスが応答しない場合、またはHotSpot VM がロードされていません。ただし、この強制モードは動的接続メカニズムよりもはるかに遅く、プロセスが一貫した状態にない場合、データの不整合が生じる可能性があることに注意することが重要です。

完了が遅延する理由

ヒープ ダンプ プロセスに長時間かかる場合は、次の要因が考えられます:

  • ヒープ サイズはダンプ時間に大きな影響を与える可能性があります。
  • 一時停止このプロセスにより、データ収集プロセスが遅くなる可能性があります。
  • 強制モード自体は、動的接続メカニズムと比較して本質的に遅い方法です。

以上が「jmap」で「-F」オプションを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。