阅读28 返回首页    go 微信


限制容器资源__应用管理_用户指南_容器服务-阿里云

Docker 容器的一大优势就是可以限制资源,包括 CPU、内存、IO 等。该设置无法通过容器服务管理控制台进行操作,您需要在编排模板中进行设置。

限制 CPU

一个 CPU 核等于 100 CPU 资源。如果机器配置是 4 核,则总共可用的 CPU 资源为 400。在编排模板中,可以通过 cpu_shares 参数指定。cpu_shares: 50表示使用 0.5 个核。

限制内存

您可以使用 mem_limit 参数限制内存,单位为 byte,最小内存为 4MB。如果设置了内存限制,当容器申请的内存超过限制时,容器会因为 OOM 而停止运行。

下面的编排模板演示了如何限制 CPU 和内存。

  1. n1:
  2. expose:
  3. - 443/tcp
  4. - 80/tcp
  5. image: 'nginx:latest'
  6. cpu_shares: 50 #0.5核
  7. mem_limit: 500000000 #500MB
  8. labels:
  9. aliyun.scale: '1'
  10. restart: always
  11. volumes:
  12. - /var/cache/nginx

资源调度

为了保证容器能获得足量的指定资源,比如上述例子里的 0.5 核 CPU 和 500MB 内存,容器服务会为容器预留资源。比如,一台 4 核的机器,最多会调度 8 个 cpu_shares=50 的容器。但是,如果创建容器时未指定 cpu_sharsmem_limit,则默认不占资源。

限制其他资源

其他资源限制请参考 Docker Compose 的说明

最后更新:2016-12-16 13:16:06

  上一篇:go 创建应用__应用管理_用户指南_容器服务-阿里云
  下一篇:go 指定节点调度__应用管理_用户指南_容器服务-阿里云