debian

Debian系统下Tomcat资源隔离方法

小樊
39
2025-11-24 04:57:24
栏目: 智能运维

Debian下Tomcat资源隔离与限制实用指南

一、隔离思路与适用场景

二、systemd资源隔离配置

[Service]
User=tomcat
Group=tomcat
MemoryMax=2G
CPUQuota=50%
# 可选:文件句柄与进程数
LimitNOFILE=65536
LimitNPROC=4096
sudo systemctl daemon-reload
sudo systemctl restart tomcat9

三、Docker容器隔离配置

docker run -d --name my-tomcat \
  -p 8080:8080 \
  --memory="1g" \
  --cpus="1.0" \
  -u "1001:1001" \
  tomcat:9.0

四、cgroups与ulimit的落地做法

# 安装工具
sudo apt-get update && sudo apt-get install -y cgroup-tools

# 创建 cgroup
sudo cgcreate -g cpu,memory:/tomcat1

# CPU:1 核 = 100000 微秒配额(100%)
echo 100000 | sudo tee /sys/fs/cgroup/cpu/tomcat1/cpu.cfs_quota_us

# 内存:1GB
echo 1073741824 | sudo tee /sys/fs/cgroup/memory/tomcat1/memory.limit_in_bytes

# 将 Tomcat 主进程加入 cgroup(PID 替换为实际值)
echo <PID> | sudo tee /sys/fs/cgroup/cpu/tomcat1/tasks
echo <PID> | sudo tee /sys/fs/cgroup/memory/tomcat1/tasks
ulimit -n 65536   # 打开文件数
ulimit -u 4096   # 用户进程数
ulimit -v 2097152 # 虚拟内存上限(KB)

五、权限边界与最小权限运行

sudo groupadd --system tomcat
sudo useradd --system -g tomcat -d /opt/tomcat -s /usr/sbin/nologin tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo find /opt/tomcat -type f -exec chmod 644 {} \;
sudo find /opt/tomcat -type d -exec chmod 755 {} \;
sudo chmod 700 /opt/tomcat/bin/*.sh
[Service]
User=tomcat
Group=tomcat

0
看了该问题的人还看了