在 Debian 上修改 Tomcat 的内存(主要是 JVM 的堆内存 -Xms / -Xmx),常见做法取决于 Tomcat 的安装方式。下面按最常见场景给你说明。
先确认你是通过哪种方式安装的 Tomcat:
dpkg -l | grep tomcat
which tomcat
ls /etc/tomcat*
常见情况:
Debian 下 Tomcat 的 JVM 参数通常在:
/etc/default/tomcat9
或(旧版本):
/etc/default/tomcat8
编辑配置文件:
sudo nano /etc/default/tomcat9
找到或添加如下内容:
JAVA_OPTS="-Xms512m -Xmx2048m"
示例说明:
-Xms512m:初始堆内存-Xmx2048m:最大堆内存(常用)你也可以加其他参数,例如:
JAVA_OPTS="-Xms1g -Xmx2g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError"
sudo systemctl restart tomcat9
catalina.sh(不推荐但可用)编辑:
$TOMCAT_HOME/bin/catalina.sh
在文件开头添加:
export JAVA_OPTS="-Xms512m -Xmx2048m"
⚠️ 不推荐,升级 Tomcat 容易被覆盖。
setenv.sh创建文件:
$TOMCAT_HOME/bin/setenv.sh
内容:
export JAVA_OPTS="-Xms512m -Xmx2048m"
赋予执行权限:
chmod +x $TOMCAT_HOME/bin/setenv.sh
重启 Tomcat:
$TOMCAT_HOME/bin/shutdown.sh
$TOMCAT_HOME/bin/startup.sh
ps -ef | grep tomcat
你应该能看到类似:
-Xms512m -Xmx2048m
jps -v
或:
jstat -gc <pid>
| 内存大小 | 建议 |
|---|---|
| 小应用 | -Xms256m -Xmx512m |
| 中型应用 | -Xms1g -Xmx2g |
| 大应用 | -Xms4g -Xmx8g |
| 容器环境 | 不要超过宿主机内存 70% |
⚠️ 不要超过系统物理内存,否则会触发 swap,性能严重下降。
❌ 修改了 server.xml
✅ 内存参数 不在 server.xml
❌ 忘记重启 Tomcat
✅ 修改后必须重启
如果你愿意,可以告诉我:
我可以给你精确到文件路径的配置方案。