21

いくつかの場所で [1] 実稼働サーバー (ミッション クリティカル) で GC ロギングを開始している人を見かけます。

java -server -Xms1024m -Xmx1024m -XX:NewSize=256m \
     -XX:MaxNewSize=256m \
     -XX:+UseConcMarkSweepGC \
     -XX:CMSInitiatingOccupancyFraction=70
     -XX:+PrintGCDetails \
     -XX:+PrintGCDateStamps \
     -XX:+PrintTenuringDistribution \
     -Xloggc:logs/gc.log \
     -Djava.awt.headless=true
     -Dcom.sun.management.jmxremote -classpath ...

最近、本番環境での推奨事項はありますか?

更新: オラクルからのリンク [2] も含めましたが、実稼働サーバーで GC を監視することも提案されています。

ソース:

[1] https://serverfault.com/questions/121490/java-opts-xxprintgcdetails-affect-on-performance

[2] http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_checklist.htm#CHHFADDF

4

2 に答える 2

55

はい、これは一般的な方法です。多くの場合、これは強く推奨されます。以下に例と参考文献を示します。

GC ロギングが本番 Java サーバーに適している理由:

  1. 最小限のオーバーヘッド- GC ロギングは、システム全体のパフォーマンスに対する オーバーヘッドが最小限です。

  2. 長期的なログは、アプリケーション パフォーマンスの分析にとって絶対に重要です。管理者が GC の動作を監視し、それに応じてアプリケーションを調整できるように、GC ロギングを常に有効にする必要があります。

于 2013-03-10T07:07:39.690 に答える
-4

絶対にありません。

QA システムで再現できない問題があった場合にのみ、この方法で製品サーバーをロードします。それでも、データを収集するための短い期間だけ、通常の「無駄のない」モードに戻ります。

于 2013-03-09T06:40:48.007 に答える