[Java] PermGen spaceを回避する

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

Hibernateを使った開発をしていると、たぶん一度はお目にかかると思うエラー。

java.lang.OutOfMemoryError: PermGen space

チェック → 問題発見 → 修正 → デプロイ → チェック という作業を延々とやっていると、たまに出てくるエラー。これが出ると、Tomcatを再起動しないと何もできなくなる。

しかし、このエラーを回避する方法があった。完全に回避できるかどうかはわからないけど、今のところエラーが出なくなったので回避できたものとしておく(笑)

早い話が、

-XX:MaxPermSize=256m

というパラメータを、Tomcat起動時に渡してあげればいいみたい。この例だと、指定したサイズは256MB。この辺のサイズは、環境によって合わせるべし。

一応、マシンの物理メモリのおよそ50%から70%の間くらいが望ましいらしい。今回は512MBのメモリを積んだマシンだったので、半分の256MBを指定。

あとは、環境変数にセットしておくのも手かも?その場合は

export CATALINA_OPTS="-XX:MaxPermSize=256m"

でよいと思われる。

コメント

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