Blog.L

Blog.L

临时解决 linux 中 运行 docker CPU 占满情况

2024-09-28

1. CPU 限制

1. 用 top 查看 CPU 使用率

参考 阿里云服务器文档

由 Linux 内核管理的所有当前运行任务的动态实时统计汇总,它监视 Linux 系统上进程、CPU 和内存的完整利用率。

top
2. 添加cpus限制

发现占用高的 docker 进程,找到相对的 docker-compose.yaml 文件,添加限制cpu核心数。

通过 deploy.resources.limits 来限制部分容器CPU实用,例如:


services:
  web:
    image: nginx
    deploy:
      resources:
        limits:
          cpus: '0.5'  # 限制为使用半个CPU核心

cpus: '0.5' 表示限制容器最多使用宿主机一半的 CPU 核心,web服务被限制为只能使用半个CPU核心。这可以帮助我们确保即使在高负载的情况下,其他服务也能获得足够的CPU资源。

2. 内存限制

同样,在 docker-compose.yaml 中,通过 deploy.resources.limits 来限制部分容器内存实用。


services:
  web:
    image: nginx
    deploy:
      resources:
        limits:
          memory: 512m  # 限制为使用512MB内存

memory: 512m 表示限制为只能使用 512MB 的内存,这可以防止单个容器消耗过多的内存,从而影响系统的整体性能。