Linux中解决Tomcat内存溢出可从以下方面入手:
catalina.sh
(或setenv.sh
),增加堆内存:export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m"
(根据服务器内存调整,建议Xms
和Xmx
设为相同值)。-XX:MetaspaceSize
和-XX:MaxMetaspaceSize
。conf/server.xml
,合理设置maxThreads
(如根据负载调整为200),避免线程过多占用内存。ulimit -n
调整文件描述符数量,修改/etc/security/limits.conf
提升上限。关键命令:
top -p $(pgrep -f tomcat)
jmap -dump:format=b,file=/tmp/heap.hprof $(pgrep -f tomcat)
jstack $(pgrep -f tomcat)
参考来源: