Docker 生产环境部署与问题处理
1. Docker 生产环境资源管理
1.1 CPU 资源分配
在 Docker 中,可以使用 docker run 命令的 -c/--cpu-shares 参数来定义容器的 CPU 相对使用份额。当容器启动时,默认会被分配 1024 个 CPU 份额。若只有一个进程运行,无论其拥有多少 CPU 份额,必要时都可使用 100% 的 CPU。只有在多个容器竞争 CPU 时,该份额数才会起作用。
例如,假设有三个容器 A、B 和 C 都试图使用所有可用的 CPU 资源:
- 若它们的 CPU 份额相同,每个容器将分配到三分之一的 CPU。
- 若 A 和 B 被分配 512 个份额,C 被分配 1024 个份额,C 将获得一半的 CPU,A 和 B 各获得四分之一。
- 若 A 被分配 10 个份额,B 被分配 100 个份额,C 被分配 1000 个份额,A 将获得不到 1% 的可用 CPU 资源,只有当 A 和 B 空闲时,A 才能执行资源密集型任务。
以下是测试代码示例:
docker run --cpuset-cpus=0 -c 10000 ubuntu:14.04 \
sh -c 'cat /dev/zero > /dev/null' &
docker run --cpuset-cpus=0 -c 1 -it ubuntu:14.04 bash
在上述代码中,第一个容器会占用大量 CPU 资源,第
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



