首页/系统/信创系统运维速查/服务资源限制:MemoryMax 与 CPUQuota
服务与运维65 条

服务资源限制:MemoryMax 与 CPUQuota

用 cgroup 给服务设资源上限防单点拖垮整机:单元 drop-in 配 MemoryMax/CPUQuota,systemd-cgtop 看各单元实时占用;超限时 OOM 处理范围收敛在该单元内。

信创系统运维速查系统更新于 2026-10-12

配置与生效

配置与生效
cat > /etc/systemd/system/myapp.service.d/20-limits.conf <<'EOF'
[Service]
MemoryMax=2G
CPUQuota=150%
TasksMax=512
EOF
systemctl daemon-reload && systemctl restart myapp
systemctl show myapp -p MemoryMax -p CPUQuota -p TasksMax
systemd-cgtop -m
CPUQuota=150% 表示至多使用 1.5 个核的算力;MemoryMax 触顶时在该单元范围内触发 OOM,比全局 OOM 影响可控。

易错点

  • MemoryMax 设得过小会让服务被反复 OOM 重启,先按历史峰值留余量
  • 老内核或容器环境 cgroup 版本不同行为略有差异,结合 systemctl status 的资源段观察实际值

数据来源与参考

  • man 5 systemd.resource-control
  • man 1 systemd-cgtop
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌