問題タブ [jinfo]

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.

0 投票する
1 に答える
1857 参照

java - VMがすでに起動した後でjava-Xmxを変更します

重複の可能性:
実行時にJVMヒープサイズを
プログラムで設定する最大Javaヒープサイズを設定する

私は自分のコンピューターで長時間実行されているJavaジョブを実行していますが、深刻なメモリプレッシャーに遭遇し、ガベージコレクターを頻繁に実行する必要があるため、終了に近づくと非常に遅くなります。-Xmxつまり、このジョブに必要な最大ヒープサイズを過小評価していました。

ジョブを再開したくないので、JVMがすでに開始された後、たとえばを使用するなどして、JVMに最大ヒープサイズを変更させる方法はありますjinfo -flagか?これは可能ですか?

jinfo -flag +Xmx1024mまたはのバリエーションを試してみましたがjinfo -flag Xmx=1024m、すべて次の例外があります。これはDebianバグ#532538の症状ですか(影響を受けるバージョンのJVMを使用しています)、これは予期された動作ですか(後で変更することは不可能-Xmxです)、またはフラグをjinfo誤って提供していますか?

0 投票する
1 に答える
908 参照

java - Mac OS X で jinfo を介して DTrace プローブを有効にできない

Snow Leopard で Java 6 を実行しています。

jinfo ユーティリティを使用して、実行中の Java プロセスで ExtendedDTraceProbes をオンにできるはずです。私のコマンド プロンプトでも、jinfoは一般的なフラグを有効にすることについて話しています。

私が知る限り、DTrace フラグに特別な価値はありません。重要なのは、その有無だけです。

しかし、それを実行しようとすると、sudo で始まるかどうかに応じて、2 つのエラーのいずれかが発生します。

想定:
jps

StayRunning プロセスと同じユーザー:
jinfo -flag +ExtendedDTraceProbes 1234

root として試行:
sudo jinfo -flag +ExtendedDTraceProbes 1234

エラーは2 行目にあり、もちろんプロセスはまだ実行中です。

奇妙なことに、このページには OS X の「+」オプションは表示されませんが、私のマシンでは使用方法のメッセージが出力されます。

これが私の簡単なコードです。Eclipse でも同様に失敗します。

StayRunning.java

0 投票する
1 に答える
375 参照

java - jinfo がときどき JVM をクラッシュさせた

偶然にも、1 つの Java プロセスの統計が T (ジョブ制御シグナルによって、またはトレースされているために停止) であることがわかりました。jinfoその時にこのコマンドを実行したため、関連している可能性があると思います。次にjinfo、もう一度実行しようとすると、プロセスが再びクラッシュしました。しかし、再現するのは容易ではありません。

process の stat が なしで T になった理由を知っている人はいますkill -SIGSTOPか? jinfoプロセスがクラッシュする可能性があるバグはありますか?

jinfo編集:プロセスが 60 日以上実行されたときに、この問題を 100% 再現しました。プロセスが長時間実行されている場合、バグがトリガーされるようです。新しいプロセスでは機能しません。

OMG、jmap同じ問題があり、100% 再現されています。しかし、そうではありませんjstack。今、私はそれがjvmの検出に関するものだと確信しています。

$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (ビルド 1.6.0_37-b06)
Java HotSpot(TM) 64 ビット サーバー VM (ビルド 20.12-b01、混合モード)

0 投票する
0 に答える
438 参照

java - jinfo と jmap を実行するときの悲惨なバグ

Java プロセスに対して jinfo または jmap を実行すると、Java プロセスが「サスペンド」されます。長時間実行されるプロセスで 100% 再現されます。

詳細な手順は次のとおりです。

  1. 25 日以上実行されている Java プロセスを選択します (これは新しいプロセスでは機能しないため、配線されています)。
  2. ps を実行してプロセスの状態を確認します。予期される "Sl" である必要があります。
  3. このプロセスに対して jinfo または jmap を実行します (BTY、jstack にはこの問題はありません)。
  4. ps を実行して、プロセスの状態を確認します。今度は「Tl」に変わります。これは、STOPPED を意味し、プロセスは要求に応答しません。

プロセスの出力は次のとおりです。

JVMのバグかもしれませんが、オラクルに報告しても何の反応もありません。ですから、ここにいる JVM の専門家が助けてくれることを願っています。

$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (ビルド 1.6.0_37-b06)
Java HotSpot(TM) 64 ビット サーバー VM (ビルド 20.12-b01、混合モード)

0 投票する
1 に答える
30 参照

java - Java オプション MaxDirectMemorySize は、java と jinfo で異なる方法で報告されます

新しいメモリ オプションを使用して Java プロセスを再起動し、-Xms4G -Xmx4G -XX:MaxDirectMemorySize=6Gこれらの変更、特に 6G のダイレクト メモリが正しく適用されているかどうかを確認したいと考えました。

これを確認するために私が見つけた最初の解決策は、javaそれ自体によるものでしたが、これは単に を報告しただけ0で、新しい設定が効果がないことを意味しています。

後で見つけた 2 番目の解決策はjinfo、経由6Gでした。

以前は他の目的で に依存していましたjava -XX:+PrintFlagsFinalが、期待値が返されない理由が不思議です。javaと が異なる結果をjinfo返すのはなぜですか?