- PR -

FullGCが頻発しCPU100%

投稿者投稿内容
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-25 19:40
SunのJDK5.0ならjconsoleというツールもあります。
グラフィカルにメモリやGCの状況が確認できます。
結構便利ですよ。
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-01-25 20:57
色々なアドバイスありがとうございます

本日アドバイスを参考に(OLD領域を大きく取り、NEW領域を小さくしGCをより実行させるようにしました)

export CATALINA_OPTS="-server -Xmx256M -Xms256M -XX:NewSize=16M -XX:MaxNewSize=16M -XX:SurvivorRatio=2"

で今のところまだシステム停止は行われいません
少々様子を見ようと思っています

そしてアドバイスのツールを使用し、GC・サーバ監視を試してみます

たぶん前進しております ありがとうございます
また報告します。
_________________
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-01-26 16:18
export CATALINA_OPTS="-server -Xmx256M -Xms256M -XX:NewSize=16M -XX:MaxNewSize=16M -XX:SurvivorRatio=2"
のGC設定を行ったところ

catarina.outに以下のようなエラーが起こりました
これから調査を行おうと思っています。 
うまくいっていたと思っていただけに本日のサーバ停止はショックでした。。。。。


org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
致命的: org.apache.jk.common.SocketConnection@ef63f9 を実行中に例外 (java.lang.OutOfMemoryError: PermGen space) をキャッチしたので、スレッドを終了します
Exception in thread "TP-Processor19" java.lang.OutOfMemoryError: PermGen space
Exception in thread "TP-Processor6" java.lang.OutOfMemoryError: PermGen space
Exception in thread "TP-Processor20" java.lang.OutOfMemoryError: PermGen space
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
Caused by: java.lang.OutOfMemoryError: PermGen space

_________________
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-26 17:12
パーマネント領域が足りないと書いてありますね。
・BEA トラブルシューティング ガイド > メモリ不足とメモリ リークに関する問題の調査
http://www.beasys.co.jp/cs/support_news/product_troubleshooting/Investigating_Out_of_Memory_Memory_Leak_Pattern.html
さと丸
会議室デビュー日: 2006/01/24
投稿数: 19
投稿日時: 2006-01-26 17:30
アドバイスありがとうございます。

軽く調べたのですが、
現在のAPは
Seasarを使用しています

この辺なんだなーと意識し始めました。
難しいです。。。。
_________________
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-26 18:12
java.lang.OutOfMemoryError: PermGen space とでてるわけですから パーマネント領域を増やしてはいかがでしょうか。
#すいません、Old領域が足りない?ってのははずれだったっぽいです
ykhr
会議室デビュー日: 2004/11/12
投稿数: 18
投稿日時: 2006-01-26 18:58
関係ないとは思いますが、Seasarの2.1系では
設定によってはOutOfMemoryErrorが発生するという事象があったようです。

http://lists.sourceforge.jp/mailman/archives/seasar-user/2005-March/003437.html

ご参考までに。

[ メッセージ編集済み 編集者: SEY 編集日時 2006-01-26 19:34 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-26 20:31
・プロトタイプを使用すると、動的にクラスを生成するが、
  要求毎にクラスを生成している
・クラスローディングに起因するメモリリークである

ということですので、いくらパーマネント領域を拡張したところで、
アプリケーション停止までの寿命が長くなるだけでしょう。
根本的には解決しません。

運用中であれば、バージョンアップも難しいと思いますが・・・

スキルアップ/キャリアアップ(JOB@IT)