java - 正常的应用多久一次Full GC?
天蓬老师
天蓬老师 2017-04-18 10:48:22
0
3
1862

我查看我们服务器的状态,半个月发生了900+次full gc,大约20分钟一次full gc,这是正常的吗?或者说优化到多久一次会比较合理?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(3)
PHPzhong

最適化されていませんが。ただし、これを最適化するには、実際のビジネス ニーズとビジネス能力に基づいてサポートする必要があると感じています。

いいねを押す +0
大家讲道理

Java アプリケーションのヒープ サイズと QPS を確認しますが、最初は 20 分ごとにフル GC を確認すると、正常ではないように見えます

いいねを押す +0
PHPzhong

JVM の最適化については何時間でも議論できます。ここでは、体系的な詳細には触れずに、いくつかの簡単な意見を述べます。

最初に: フル GC が頻繁に発生することが問題です。合計メモリと古い世代の設定が小さすぎるかどうかを確認してください。
主にパラメータ -Xmx と -Xmn に依存しますが、小さすぎると必然的に gc が頻繁に発生します。

2 番目: 次のパラメーターを追加します
-verbose.gc -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution - Xloggc:/data/log/xxx/xxx-gc.log -XX:+PrintGCDetails
各 gc 後に古い世代にどのくらいのスペースが残っているかを確認する 一般的に、古い世代のスペースは 2 ~ 2.5 倍に設定されます。 gc 後のメモリはより適切な値です。
同時に、このログを通じて、新しい世代に十分な gc がないまま、古い世代に大量のオブジェクトが入っているかどうかを確認できます。新世代でリサイクルできるオブジェクトが旧世代に入ると必然的にフルGCが多発します

3 番目: コード理由ダンプ メモリ
jmap -dump:live,format=b,file=xx.bin [pid]
次に、MAT (http://www.eclipse.org/mat/) を通してそれを確認します。ツール 解放されていない大きなメモリはどれですか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート