問題タブ [verbosegc]
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.
java - Java の CMS GC ログ行の定義?
CMS (Concurrent-Mark-Sweep) GC が有効になっている Java ランタイムを調べると、以下のログのスペースの定義は何ですか? CMS
在職中のスペースだと思いますか?マイナー-メジャー-マイナー GC イベントの次の行が表示されます
特にイベント[CMS: 10899K->9379K(12448K), 0.2675281 secs]
時23.492
。これは、CMS とラベル付けされたばかりの在職期間を示していますか? CMS は在職期間中のみに実行されますか?
java - Java の mark-preclean-sweep-reset GC ラインの定義?
CMS GC が有効になっている Java ランタイムで、次の verbosegc 行について洞察を提供してもらえますか? 具体的には:
- でのイベントは
29.490
、マーキングのための高水準のヒープ位置を示していますか? - フェーズとは何
preclean
ですか?マーキングとは何が違うのですか? reset
フェーズとは何ですか?それがスイープの終わりではないのに、なぜそれが完了するのに時間がかかるのでしょうか?- 最後に、 でのイベントの
Rescan
、grey
およびroot
再スキャンとremark
エリアとメトリックとは29.653
何ですか? これらは、後続のスイープで報告されたヒープ メトリックであると仮定しますか? もしそうなら、なぜ彼らは時間を消費するのですか?
verbosegc ログの抜粋:
ありがとう、
java - Java verbose:gc 出力の読み方
いくつかのパフォーマンスの問題がある Java アプリケーションがあり、誰かが verbose:gc モードで実行することを勧めています。これは完了しましたが、ログの解釈方法がわかりません。それが何を意味するのかを説明したり、パフォーマンスを向上させるために何ができるかをアドバイスしたりできますか?
出力ログはhttp://pastebin.com/uDNPEGcdにあります。
前もって感謝します, 敬具, マールテン
java - jvm verbosegc ログ ファイルの問題
Linux サーバー上に verbose:gc がオンの Glassfish サーバーがあり、gc.log ファイルに出力されます。
フラグを使用します-XX:+PrintGCDetails
。生成されたファイルには、次のような行が含まれています。
ご覧のとおり、最後の行にはその[Times: ...]
部分が含まれていません。次の GC イベントが発生すると[Times: ...]
、前の行の一部が書き込まれ、次に別の部分的な行が書き込まれるため、GC イベント行はログ ファイルに完全には書き込まれません。
行が終了していないため、改行が存在しないため、行は次のようなツールに表示されませんmultitail
フラグを使用すると、-XX:+PrintGC
この問題はなくなります。しかし、完全な詳細が必要なため、これは良い解決策ではありません。
Linux で動作する JVM バージョン:
問題は、JVM に強制的にログ行を書き込むこと (一種のフラッシュ トリック) は可能かということです。または、最後の部分なしで GC の詳細を取得することは可能ですか?
java - gc ログの分析
-XX:+PrintGCApplicationStoppedTime
オプションとオプションを使用-XX:+PrintGCApplicationConcurrentTime
して、gc ロギングをオンにしています。
しかし、コマンドPrintGCApplicationStoppedTime
を介して印刷された gc ログの実際の詳細を4 0r 5 印刷した後であることがわかりました。-XX:+PrintGCDetails
定義によりPrintGCApplicationStoppedTime
、すべての gc のアプリケーション停止時間を出力します。
しかし、以下に示す例のように印刷される理由は明確ではありません。
そのせいか
PrintGCApplicationStoppedTime
安全なポイントに到達するたびに印刷するだけです
(また)
ログ ファイルは、さまざまな gc スレッドによって記録されます。フルGCには同時スイープを使用し、若い世代にはParNewを使用しています
私のアプリケーションは Web アプリケーションです。
O/p パターン - 私はこのようになっています:
java - Java は PSYoungGen であり、世界を止めるイベントです
これらは私のJavaアプリケーション/ jvmの場合、世界のイベントを停止しますか?もしそうなら、どれを停止しますか? ユーザー sys real、
[PSYoungGen: 347808K->672K(348160K)] 415832K->68744K(1047552K), 0.0019772 秒] [時間: user=0.03 sys=0.00, real=0.00 秒]
[PSYoungGen: 347808K->640K(348160K)] 415880K->68792K(1 047552K), 0.0018775 秒] [時間: user=0.01 sys=0.01, real=0.00 秒]
[PSYoungGen: 347776K->704K(348160K)] 415928K->68912K(1047552K), 0.0020238 秒] [時間: user=0.02 sys=0.00, real=0.00 秒]
ありがとう
java - Java Large Pages と Verbose GC ヘッダー
次のコマンドを使用して、JBoss システムでラージ ページを使用できるようにしました。
また、OS レベルでページを割り当て、JBoss がページを使用するためのアクセス許可を提供しました。4k ページ サイズを示す Verbose GC ログ ヘッダーを除いて、すべて問題ないように見えます。
この行は、JAVA_OPTS および OS レベルで定義されているラージ ページ サイズに一致するように「2m ページ」と表示されると予想されますが、Java ヒープがラージ ページを「認識」していないか、GC ログ ヘッダーが認識されていない可能性があります。これらの変更に敏感です (たとえば、この出力はシステムのページ サイズをチェックしますが、必ずしも Java によって使用されているページではありません。この場合は 2m の大きなページです (うまくいけば))。
大きなページを使用してこのヘッダーが変更されることを期待すべきかどうかは誰にもわかりませんか?