Tomcat的内存配置主要通过JVM参数调整,关键参数及作用如下:
-Xms:JVM初始堆内存大小(如-Xms512m表示初始分配512MB),建议与-Xmx一致,避免频繁扩容导致性能波动。-Xmx:JVM最大堆内存大小(如-Xmx1024m表示最多使用1024MB),不应超过物理内存的80%(如16GB物理内存建议不超过12GB)。-XX:MaxMetaspaceSize(Java 8+):元空间最大大小(替代旧版的PermSize/MaxPermSize),默认无限制,建议设置为256m-512m(避免元空间溢出)。-XX:+UseG1GC(G1垃圾回收器),适用于高并发场景,提升GC效率。以下配置适用于大多数中小型应用(需根据实际情况调整):
编辑catalina.sh文件(Tomcat启动脚本):
打开/usr/share/tomcat/bin/catalina.sh(路径可能因版本不同而变化),在文件顶部添加:
export JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m -XX:+UseG1GC"
-server:启用服务器模式(优化多CPU性能)。-Xms512m:初始堆内存512MB。-Xmx1024m:最大堆内存1024MB。-XX:MaxMetaspaceSize=256m:元空间最大256MB。-XX:+UseG1GC:使用G1垃圾回收器。通过setenv.sh设置(可选):
若不想修改catalina.sh,可在/usr/share/tomcat/bin/下创建setenv.sh(赋予执行权限):
sudo touch /usr/share/tomcat/bin/setenv.sh
sudo chmod +x /usr/share/tomcat/bin/setenv.sh
编辑setenv.sh,添加与上述相同的JAVA_OPTS内容。
-Xms256m -Xmx512m -XX:MaxMetaspaceSize=128m(适合个人博客、测试环境)。-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m(适合企业内部系统、小型电商)。-Xms2048m -Xmx4096m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC(适合大型电商平台、社交平台),需确保服务器物理内存充足(如8GB以上)。sudo systemctl restart tomcat
sudo lsof -i:8080(假设端口为8080)。sudo jmap -heap <PID>(<PID>为Tomcat进程ID)。top、htop(查看RES列,即实际内存占用)。jconsole、jvisualvm(监控堆内存、GC情况)。-Xmx不应超过物理内存的80%,否则会导致系统内存不足,引发OOM(Out of Memory)错误。-Xmx最大支持约2GB(需测试确认),建议升级至64位系统以提升内存支持。-Xmn,如-Xmn256m);若存在大量长期对象,可增大老年代比例。通过以上配置和调整,可根据Debian服务器的硬件资源和应用需求,优化Tomcat的内存使用,提升系统性能和稳定性。