22

最近、本番環境が非常に遅くなりました。プロセスの CPU が 200% 使用されました。しかし、それは機能し続けました。サービスを再起動した後、再び正常に機能しました。いくつかの症状があります。パー サバイバー スペース ヒープが長い間空で、ガベージ コレクションに CPU 時間の約 20% が費やされていました。

JVM オプション:

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

添付の写真の詳細情報 非ヒープで問題が発生したとき、使用されたコード キャッシュと使用された cms perm gen は半分に減少しました。

newrelic から情報を取得しました。ここに画像の説明を入力

問題は、サーバーの動作が非常に遅い理由です。

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

詳細: 私は、Old gen が毎日いっぱいになっていることを観察しました。今は毎日サーバーを再起動しています。再起動後はすべてうまくいきますが、古い世代は翌日までいっぱいになり、再起動が必要になるまでサーバーの速度が低下します.

4

1 に答える 1