Linux上Java网站性能问题的解决

本文介绍了如何诊断和解决Java应用程序中出现的PermGen空间内存溢出问题。通过使用top命令发现CPU占用过高,进一步利用jmap工具检查到PermGeneration内存接近饱和。最终通过调整PermSize和MaxPermSize参数成功解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近发现,之前部署的站点不响应了,页面老长时间打不开。登上服务器,一点一点看吧。
首先敲入 top 命令。
发现java所占用的CPU长时间100%,内存占用倒不是很厉害。
再把Tomcat的logs中的catalina.out打开看看,有错误:
[quote]
SEVERE: Error reading request, ignored
java.lang.OutOfMemoryError: PermGen space
[/quote]
我这个时候的想法是,CPU是不是都用在GC上了。但是GC一般都用在Young Generation和Old Generation。Permanent Generation里也会垃圾回收吗?(此处忘高手指点)
再用 jmap -heap <pid> 看了一下内存使用情况。
Perm Generation里还真是接近100%的被使用。
其中,PermSize是16M,MaxPermSize是64M。

只有打开catalina.sh,在里面加上这么一句。
[quote]
-XX:PermSize=64M -XX:MaxPermSize=128M \
[/quote]
重新启动服务。
这个问题就算解决了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值