温馨提示×

Debian Tomcat内存怎么调

小樊
45
2026-08-31 07:07:37
栏目: 智能运维

在 Debian 上调整 Tomcat 的内存(主要是 JVM 堆内存),通常有几种方式,取决于你是 用什么方式安装的 Tomcat。下面按最常见场景说明。


一、先确认 Tomcat 是怎么安装的

which tomcat
dpkg -l | grep tomcat
ps -ef | grep tomcat

常见情况:

  1. APT 安装的 Tomcat(Debian 官方包)
  2. 手动下载解压的 Tomcat(tar.gz)

二、APT 安装的 Tomcat(最常见)

Debian 用 systemd 管理 Tomcat,不要在 catalina.sh 里改

1️⃣ 找到 Tomcat 服务名

一般是:

systemctl status tomcat9
# 或
systemctl status tomcat10

2️⃣ 修改 JVM 内存参数

编辑 systemd 配置:

sudo systemctl edit tomcat9

或手动创建:

sudo nano /etc/systemd/system/tomcat9.service.d/override.conf

加入以下内容(示例):

[Service]
Environment="JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"

常用参数说明:

参数 作用
-Xms 初始堆内存
-Xmx 最大堆内存
-XX:MetaspaceSize 元空间初始
-XX:MaxMetaspaceSize 元空间最大

✅ 推荐:

  • 生产环境:
    -Xms2g -Xmx2g
    

3️⃣ 重载并重启

sudo systemctl daemon-reload
sudo systemctl restart tomcat9

三、手动安装的 Tomcat(tar.gz)

方法 1:修改 setenv.sh(推荐 ✅)

cd /opt/tomcat/bin
sudo nano setenv.sh

写入:

export JAVA_OPTS="-Xms512m -Xmx1024m"

赋予执行权限:

chmod +x setenv.sh

重启 Tomcat:

./shutdown.sh
./startup.sh

方法 2:直接改 catalina.sh(不推荐)

nano catalina.sh

加一行(不推荐,升级会被覆盖):

JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m"

四、验证内存是否生效

1️⃣ 查看进程

ps -ef | grep tomcat

2️⃣ 查看 JVM 参数

jps -v

或:

java -XX:+PrintFlagsFinal -version | grep HeapSize

3️⃣ Tomcat 管理页面(可选)

访问:

http://IP:8080/manager/status

五、内存设置建议(实战)

服务器内存 推荐设置
2G -Xms512m -Xmx1024m
4G -Xms2g -Xmx2g
8G+ -Xms4g -Xmx4g

⚠ 建议:

  • Xms == Xmx(避免动态扩容)
  • 不要超过物理内存 70%

六、常见问题

❌ 修改后不生效?

  • systemctl edit 修改的,一定要 daemon-reload
  • 确认你改的是 正在运行的服务

❌ OutOfMemoryError?

  • 调大 -Xmx
  • 检查是否有内存泄漏
  • 看 GC 日志:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps

如果你愿意,可以告诉我:

  • Debian 版本
  • Tomcat 版本
  • 是 apt 安装还是手动安装
  • 服务器内存大小

我可以给你 精确的内存参数示例

0