Linux中解决Tomcat内存溢出可从以下方面入手:
catalina.sh,设置合理的堆内存大小(-Xms和-Xmx,建议不超过物理内存70%),如-Xms1024m -Xmx2048m。-XX:MaxMetaspaceSize替代-XX:MaxPermSize。-XX:+UseG1GC。jmap生成堆转储文件,配合Eclipse MAT分析。/etc/security/limits.conf),避免因连接数过多导致溢出。jstat监控GC情况,jconsole或VisualVM实时查看内存使用。关键参数示例(catalina.sh):
export JAVA_OPTS="-Xms2G -Xmx2G -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
根据服务器配置和应用负载调整数值,优先通过监控工具定位具体瓶颈。