2013-10-16 8 views
17

最近、生産環境が非常に遅くなりました。プロセスのCPUは200%を要しました。しかし、それは動作し続けた。サービスを再開した後、正常に機能しました。私はいくつかの症状があります: Par survivor spaceヒープは長い間空であり、ガベージコレクションはCPU時間の約20%を占めました。旧世代のヒープがいっぱいで、エデンとサバイバーが少なく空きがほとんどありません

JVMオプション:添付PIC で

X:+CMSParallelRemarkEnabled, -XX:+HeapDumpOnOutOfMemoryError, -XX:+UseConcMarkSweepGC, -    XX:+UseParNewGC, -XX:HeapDumpPath=heapdump.hprof, -XX:MaxNewSize=700m, -XX:MaxPermSize=786m, -XX:NewSize=700m, -XX:ParallelGCThreads=8, -XX:SurvivorRatio=25, -Xms2048m, -Xmx2048m 

    Arch amd64 
    Dispatcher Apache Tomcat 
    Dispatcher Version 7.0.27 
    Framework java 
    Heap initial (MB) 2048.0 
    Heap max (MB) 2022.125 
    Java version 1.6.0_35 
    Log path /opt/newrelic/logs/newrelic_agent.log 
    OS Linux 
    Processors 8 
    System Memory 8177.964, 8178.0 

詳細情報の問題は、非ヒープ使用されるコードキャッシュ上で発生し、GENが半分に低下したCMSパーマを使用した場合。

私はnewrelicから情報を取った。 enter image description here

なぜサーバーが遅く動作するのですか?

サーバーが完全に停止することがありますが、PDFをアップロードするときにPDFBoxに問題があり、JVMがクラッシュするフォントが含まれていることがわかりました。

詳細情報:私は毎日、古い世代がいっぱいになっていることを観察しました。今度は毎日サーバーを再起動します。再起動後はすてきですごくいいですが、古い世代は翌日までいっぱいになり、サーバーは再起動が必要になるまで遅くなります。

+1

それでは、どうしたのですか? –

+0

あなたのパーマスペースが使い果たされ、あなたの新しいスペースがほとんど空であれば、新しいスペースのサイズを小さくしてperm genにさらにスペースを割り当てるのは意味がありませんか?これを行い同じ問題が発生すると、メモリリークが発生する可能性があります。 – TMN

+0

permには、コンパイルされたクラスとその他のものが含まれています。私が見る問題は、旧世代が増えていることです。私は毎日サーバを再起動して正常に戻らなければなりません。 perm genグラフィック(および残りの部分)がダウンしたときには、tomcatの再起動があります。 – Bogdan

答えて

22

デフォルトでは、OldGenが70%の場合、CMSは同時に収集を開始します。この境界より下のメモリを解放できない場合、永続的に実行され、操作が大幅に遅くなります。 OldSpaceが完全なOldGenの使用に近づいていると、それはパニックになり、非常に長い(20秒のような)GC停止を止めるために後退します。 OldGenでより多くのヘッドルームが必要になるでしょう(アプリケーションがメモリofcを漏らさないように!)。また、あなたは使用して、並行コレクション(デフォルト70%)を開始するための閾値を下げることができ

-XX:+ UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction = 50

、これは50%の占有と増加のチャンスで始まる同時コレクションがトリガされますCMSは時間内にGCを終了します。これは、あなたの割当率が高すぎる場合にのみ役立ちます。それは、十分ではないヘッドロム/ memleak +高すぎるXX:CMSInitiatingOccupancyFractionのようなチャートからです。少なくとも500MBから1GB以上を提供するOldGen space

+1

それが問題を解決しました。ありがとう。私たちは1Gバイト増えましたが、今は問題ありません。 – Bogdan

関連する問題