ページ

2008年10月29日

IBMのJVMにはPermGenがないのか!

SunのJDKを使ってアプリケーションサーバを動かしていると時々OutOfMemoryの例外が出てしまいます。ヒープのサイズを変えても(ヒープは余っているのに)メモリがたらなくなることがあり、それは大体、PermGenが足りないせいでした。SunのJVMでは-XX:MaxPermSize=256mのように指定することでPermGenのサイズをコントロールしています。

さて、IBMのJVMでもOutOfMemoryが発生しました。PermSizeを指定し忘れていると思ってJVMに上のオプションを指定して起動しようとすると「Unrecognized Option」と言って怒られます。IBMのマニュアルらしきものを見るとオプションはあるのですが、指定できません。このスレッドを読んでいると、SunのVMと違ってIBMのVMはPermSizeを気にしなくてもいい作りになっているそうです。

Or you can switch to a JVM that does not use a permanent generation (or doesn't use it to store class files) like the IBM JVM.
さて、このすれっどから、「クラスローダーがリークしている」とか、「SunのJVMのPermGen」のお話とかで、以前IBMの人が言っていたJVMを定期的にリロードしたいと言うのが少し分かった気がします。

0 件のコメント: