tomcat服务器经常报错PermGen Space

分析tomcat环境下的重启方式

方式一:sh shutdown.sh这种方式是让正在运行的java线程从运行态(running)改变为sleep,通过这种命名java线程会越来越多,这种方式关闭的tomcat,无法关闭JVM进程,JVM可以去清清除ermGenSpace中的内存

方式二:kill -9 这种方式

当我们的tomcat中有很多的class文件时,就很有可能报错PermGen Space,指的是内存的永久保存区,该块内存主要是被JVM用来存放 class 和 mete 信息的,当 class 被加载 loader 的时候就会被存储到该内存区中,与存放类的实例的heap区不同,java中的 垃圾回收器GC 不会在主程序运行期对 PermGen space 进行清理,因为通过这种方法JVM进程也会被杀死,也就无法让JVM去清除PermGenSpace中的内存。

两种方式对比发现各有利弊,我们可以通过清楚服务器缓存:echo 3 > /proc/sys/vm/drop_caches

也可以给tomcat增大MaxPermSize的容量:

修改 TOMCAT_HOME/bin/catalina.sh:JAVA_OPTS="$JAVA_OPTS" -server -XX:PermSize=128m -XX:MaxSize=512m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值