Agent容器资源限制CPU内存

Agent 容器在运行过程中如果不对 CPU 和内存做限制,可能会因为任务并发或代码异常把服务器资源吃满,导致整台机器卡死甚至其它服务被 OOM 杀掉。
本文以 Docker 环境为例,讲清楚如何通过 --cpus、--memory 和 compose 配置限制 Agent 容器的资源使用,并给出验证和排错方法,适合零基础运维直接照做。

先看当前 Agent 容器消耗了多少资源

在动手之前,先用 docker stats 观察正在运行的 Agent 容器:

docker stats --no-stream

输出里的 CPU % 和 MEM USAGE / LIMIT 能直观反映容器当前占用。
如果 LIMIT 显示为无限大,说明容器没有资源约束,一旦 Agent 任务突发或内存泄漏,宿主机很容易被拖垮。
记录一下 Agent 容器名,后面配置会用到。

用 docker run 直接限制 CPU 和内存

如果 Agent 是用 docker run 启动的,可以在启动命令里追加两个参数:

docker run -d --name agent \
  --cpus="1.5" \
  --memory=2g \
  --memory-swap=2g \
  your-agent-image
  • --cpus="1.5" 表示容器最多使用 1.5 个 CPU 核心,支持小数。
  • --memory=2g 限定内存上限为 2GB。
  • --memory-swap=2g 表示不额外分配 swap,避免内存超限后继续用交换分区硬撑,这能更快触发 OOM 而不是让服务器持续卡顿。

如果 Agent 已经在运行,需要先停止并删除旧容器,再用新参数重建。

用 docker-compose 配置更便于维护

使用 compose 时,在服务定义下增加 deploy.resources 段:

services:
  agent:
    image: your-agent-image
    container_name: agent
    deploy:
      resources:
        limits:
          cpus: "1.5"
          memory: 2g
        reservations:
          cpus: "0.5"
          memory: 512m

limits 是硬上限,reservations 是预留值,仅在 Swarm 模式下部分生效,本地 compose 主要看 limits。
修改后执行:

docker-compose up -d

注意,使用 docker-compose 时需要确保版本支持 deploy 字段,普通 Docker Compose V2 可以直接使用。

验证限制是否真的生效

配置完成后,用两条命令确认:

docker inspect agent --format='{{.HostConfig.CpuShares}} {{.HostConfig.Memory}}'

CpuShares 和 Memory 会显示底层配置。
更直观的是运行一段高负载任务后观察 docker stats:

docker exec agent stress-ng --cpu 4 --timeout 30s

如果容器内有 stress-ng,执行后看 docker stats 的 CPU % 是否被限制在 150% 左右(对应 1.5 核)。
内存限制可以查看 docker inspect 中的 Memory 值,当容器超过内存上限时会被 OOM 杀掉,这是预期行为,日志里能看到 Killed 提示。

避坑说明:这些细节最容易出错

  1. 不要只设内存不加 swap 限制。只设 --memory 时,默认 --memory-swap 等于两倍内存,容器仍可能占用较多 swap,表现为服务器变卡。建议显式设置 --memory-swap 与内存一致。
  2. CPU 限制是相对值而非绝对的“几核”。--cpus 在 Linux 上通过 CFS 配额实现,对单核频繁计算的任务有效,但如果 Agent 调用外部进程或 GPU,限制效果会减弱。
  3. Compose 文件中的 cpus 是字符串,必须写成 "1.5" 而不能是数字 1.5,否则部分版本解析报错。
  4. 限制内存后要关注容器重启策略。OOM 导致容器退出后,建议加上 restart: unless-stopped,避免 Agent 停掉后无法自愈。

如果你现在运行的 Agent 已经出现 CPU 占满或内存飙高,先用 docker stats 定位容器名,再按本文加限制重建即可。
如果文中命令在你这台机器上报错,优先检查 Docker 版本和 compose 文件缩进。

分享到:
上一篇
LLMOps告警:向量库宕机、Embedding接口失败
下一篇
多Embedding模型路由,短文本长文本选用不同Embed
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意