linux启动docker数量限制,Docker主机上运行的容器数量是否最大?

小编典典

您可以遇到(和解决)许多系统限制,但根据

您如何配置Docker容器。

您正在容器中运行的内容。

您所使用的内核,发行版和Docker版本。

下图来自基于Tiny Core Linux 7的boot2docker 1.11.1

vm映像。内核是4.4.8

码头工人

在您在容器内部运行的基础之上,Docker会创建或使用大量资源来运行容器。

将虚拟以太网适配器连接到docker0网桥(每个网桥最多1023个)

挂载AUFS和shm文件系统(每个fs类型最多挂载1048576个文件)

在图像顶部创建一个AUFS层(最多127层)

分叉1个额外的docker-containerd-shim管理过程(平均每个容器上约3MB,并且sysctl kernel.pid_max)

Docker API /守护程序内部数据来管理容器。(每个集装箱约40万)

创建内核cgroup和名称空间

打开文件描述符(〜15 + 1在每启动时运行的容器。ulimit -n和sysctl fs.file-max)

Docker选项

端口映射-p将在主机上为每个端口号运行一个额外的进程(在avg 1.12之前的版本中,每个端口〜4.5MB,每个> 1.12的端口约为〜300k sysctl kernel.pid_max)

--net=none并--net=host消除了网络开销。

集装箱服务

通常,总体限制取决于您在容器中运行的内容,而不是由dockers开销决定(除非您做的事情比较深奥,例如测试可以运行的容器数量:)

如果您在虚拟机(节点,红宝石,python,java)中运行应用程序,则内存使用可能会成为您的主要问题。

跨1000个进程的IO将导致大量IO争用。

尝试同时运行1000个进程将导致大量上下文切换(有关垃圾回收,请参见上面的vm apps)

如果从1000个容器创建网络连接,则主机网络层将进行锻炼。

调整Linux主机以运行1000个进程并没有太大不同,仅包括一些额外的Docker开销。

运行的1023 Docker busybox映像nc -l -p 80 -e echo host占用了大约1GB的内核内存和3.5GB的系统内存。

nc -l -p 80 -e echo host主机上运行的1023个普通进程使用大约75MB的内核内存和125MB的系统内存

依次启动1023个容器大约需要8分钟。

连续杀死1023个容器大约需要6分钟

2020-06-17

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值