7

主に応答時間の「広がり」を減らすためにアプリケーションを調整しようとしています。平均は問題ありませんが、範囲が広すぎます。

Dynatrace は、応答時間が長いほど、サスペンションに費やされる時間が長いことに関連していることを示しました。これは GC を指します。

オンラインでの読み取りに基づいて、いくつかの JVM GC 値を変更しようとしましたが、ほとんど成功しませんでした。

GC ログに基づいて、Allocation Rate は約 324 MB/s であり、Promotion Rate はわずか 0.85 MB/s であると計算しました。私にはこれが非常に高い割り当て率を持っているように見えるので、Young Generation のサイズを大きくしようとしました。

最初のスクリーンショットは、デフォルトの Java 8 設定、1024MB Xmx を使用したものです。

2 番目のスクリーンショットは、NewRatio=1 を設定しています。

次に何を試すべきかについての提案は本当にありがたいです.

私がすでに試したこと: G1GC に変更し、NewRatio=1 を設定し、NewRatio=1 を設定し、Xmx を 2048 に増やし、NewSize=1600m および Xmx=2048 を設定し、MetaspaceSize=100 を設定します。

編集: GC ログの追加: http://pastebin.com/VhJwSuxv

注: これらのログは、次の変更を加えた 10 分間のテストからのものです: NewRatio=1

ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1

4

GC を調整する前に、メモリ プロファイラーを使用して、最初に割り当て率を下げるようにしてください。

若い世代をさらに増やしてみることができます。たとえば-Xmn2g -Xmx3g、NewRatio を設定することも設定しないこともできます。

割り当て率は約 324 MB/s であることがわかりました。

これは、Web アプリケーションとしては中程度のレートです。それよりも低い可能性がありますが、このレベルでは重大な問題はないと思います。

たとえば、マシンのメモリの量に応じて、はるかに大きなヒープから始めて-Xmn24g -Xmx32g、一時停止時間を調べます。次に、GC 時間に影響を与えているように見えるまで (さらに短くなる可能性もあります)、ヒープ サイズを減らします。

それを見る別の方法。2 秒から 10 秒ごとにマイナー GC を実行しても問題ない場合があります。これは、650 MB から 3.2 GB の Eden スペースが必要であることを意味します。

于 2016-05-03T15:25:51.590 に答える