[Java] PermGen spaceの恐怖

※当サイトでは広告を掲載しています

だいぶ前にPermGen spaceの対処法を記事にしていましたが、それから年月が経ち、今やメモリ4GB(実質3.5GB弱の認識)を積んだマシンになり、MaxPermSizeをもっと大きめに取れるようになりました。しかし、ここ最近またPermGen spaceが時々出てきます。

頻繁にガベージコレクションを行うことである程度抑えることはできるようですが、やはりコーディング→動作確認→コーディングの繰り返しをしていると、発生頻度が高い。

これが出てしまったらglassfishを再起動するだけでエラーは消えるので、特に困ることは無い。けど、再起動に時間がかかるのが難点。

そして、ついに今日、PermGen spaceが反撃してきました(笑)

PermGen spaceの反撃

JasperReportを使ってCSVファイルを作成する処理を作っていたときのこと。いつものように動作確認をしながらコーディングしていたら、動作途中でPermGen spaceが発生。しかもいつもとちがって、システムログに滝のようにログを吐いている。全部PermGen space。

サーバを止めようとしても、停止処理すらPermGen spaceで止まってしまう勢い。

しょうがないのでプロセスをkillして、再度glassfishを立ち上げようとしたら、ポートを開放してくれなかったらしく、起動エラー。結局PCを再起動するハメに。

再起動後は何事も無かったかのように正常動作していますが…いきなり大量のログを吐き出すなんて、一体何だったのだろう…。

コメント

タイトルとURLをコピーしました