2012-04-11 21 views
0

問題: この特定のタスクよりも優先度の高いタスクがCPU時間を浪費し、タイムアウトの問題が発生します。私たちはこのタイムアウトをGCフルサイクル中に非常に頻繁に見ました。だから、GCを特定の%のCPUに限定する方法はありますか?使用GCを特定の%のCPUに限定する方法はありますか?

JVMパラメータ:

wrapper.java.additional.3 = -XX:+ UseConcMarkSweepGCを

wrapper.java.additional.4 = -XX:+ ExplicitGCInvokesConcurrent

wrapper.java。 additional.5 = -XX:+ CMSIncrementalMode

wrapper.java.additional.6 = -XX:CMSIncrementalDutyCycle = 50

wrapper.java.additional.7 = -XX:C MSIncrementalDutyCycleMin = 50

+1

「HotSpot VMガベージ・コレクション・チューニング」(http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html)を参照してください。 – Jesper

答えて

5

いいえ、でもどちらにもしたくないです。問題は、CMSを使用しているにもかかわらず、世界を止めなければならない部分があり、これがあなたのタイムアウトの原因となる可能性が高いということです。

より良い解決策は、アプリケーションのメモリプロファイルで、ゴミを少なくすることです。これにより、サイズと頻度でGC時間が短縮されます。 GCを1日に1回未満に減らすことができれば、この問題はもう発生しません。

関連する問題