ps: after several times of redeployment, java.lang.OutOfMemoryError: PermGen space comes up. I always redeploy the apps *without* shutting down the server
在 2010年11月23日 下午1:50,xu cheng <xcheng....@gmail.com>写道: > hi Daniel > thanks alot for replying. > > I don't know how to figure out how much the param MaxPermSize is set to. > may be it's set to be default. I just set the xmx and xms, so I thought that > the memory will absolutely enough, I didn't > notice this param, my fault. > > I did an experiment on tomcat , I just kept redeploying apps , and the perm > gen keep growing each time I deploy the same app. and when I undeploy the > app, the perm gen didn't clean the garbage > ( I think they are garbage, but I don't know whether the vm can figure it > out, I monitor this with the > jconsole in the jdk/bin). in the meanwhile , the code cache in the memory > pool and the loaded classes grow with the same curve like the permanent > generation. the unused class meta data wasn't cleaned up during each > deployment. > > I always redeploy the apps with shutting down the server, I think that > might be the point. > > by the way , this aritical help me a lot to understand it. > > http://blogs.sun.com/jonthecollector/entry/presenting_the_permanent_generation > > thanks again for helping > > 2010/11/23 Daniel Baktiar <dbakt...@gmail.com> > > hi xu cheng, >> >> having a powerful machine with big memory is good. but don't assume that >> everything will be used automatically. >> the jvm doesn't automatically use all the resources in your memory when >> you >> start tomcat. you need to configure it. >> try to add something like this: >> *CATALINA_OPTS="-XX:MaxPermSize=512m" * >> inside your catalina.sh (linux/unix) or catalina.bat (windows). >> you can put this as the first line (after the comments, for example). >> >> try to run again and see whether you still have the same error(s). >> >> PermGen space is the permanent generational heap for storing data such as >> class data. you will bump into this when deploying a large application or >> deploying repetitively. you will still get the exception when deploying >> often, only less frequent. >> --- >> daniel baktiar >> http://savinggaia.tritiumapps.com - saving the planet is everyone's >> business! >> >> >> >> >> 2010/11/22 xu cheng <xcheng....@gmail.com> >> >> > after tracing the app with jprofiler for several hours , I still cannot >> > figure the problem. >> > it seems that the app doesn't use a lot of memory. >> > and it still run pretty well in my computer.and after it is deployed in >> the >> > server, it crash.... >> > the problem of the environment? but the tomcat on the server has been >> > running for a really long time with out any problem.... >> > what's the point?.oh no (°ο°) >> > >> > 2010/11/22 xu cheng <xcheng....@gmail.com> >> > >> > > by the way, >> > > it doesn't throws this exception while running on my computer >> > > it is only when the app is deploy on another computer that this >> problem >> > > occur >> > > >> > > 2010/11/22 xu cheng <xcheng....@gmail.com> >> > > >> > > hi: >> > >> thanks for replying >> > >> the app is running on a powerful server and the memory is suppose to >> be >> > >> enough >> > >> I'll check if there is a memory leak,(althouth the app is suppose to >> use >> > >> only a few memory) >> > >> thanks >> > >> >> > >> 2010/11/22 Caldarale, Charles R <chuck.caldar...@unisys.com> >> > >> >> > >> > From: xu cheng [mailto:xcheng....@gmail.com] >> > >>> > Subject: OutOfMemoryError some time on some tomcat!!!!1 >> > >>> >> > >>> > the app works pretty well on my pc, and the tomcat >> > >>> > is apache-tomcat-6.0.29 >> > >>> > however , when I put this app on to another computer >> > >>> > with the same tomcat it throws this exception >> > >>> > Java HotSpot(TM) 64-Bit Server VM warning: Exception >> > >>> > java.lang.OutOfMemoryError >> > >>> >> > >>> > Exception in thread "http-8080-24" >> > >>> > java.lang.OutOfMemoryError: PermGen space >> > >>> >> > >>> 64-bit JVMs often require larger heap sizes than 32-bit ones. If >> the >> > >>> error occurs on the first deployment of the app, you may just need >> to >> > >>> configure a larger PermGen. However, if this error occurs only >> after >> > >>> redeploying your app some number of times, you likely have a memory >> > leak. >> > >>> Use any of the widely available profilers or heap analysis tools to >> > see >> > >>> just what is consuming memory. You can get some pointers here: >> > >>> >> > >>> http://wiki.apache.org/tomcat/FAQ/Memory >> > >>> >> > >>> - Chuck >> > >>> >> > >>> >> > >>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE >> > PROPRIETARY >> > >>> MATERIAL and is thus for use only by the intended recipient. If you >> > received >> > >>> this in error, please contact the sender and delete the e-mail and >> its >> > >>> attachments from all computers. >> > >>> >> > >>> >> > >>> >> --------------------------------------------------------------------- >> > >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> > >>> For additional commands, e-mail: users-h...@tomcat.apache.org >> > >>> >> > >>> >> > >> >> > > >> > >> > >