我们有 3 台服务器,安装了 RHEL 7.6 版本
该机器是 DELL 物理机,规格RAM = 64G
如下CPU = 16
我们准备在所有机器上安装服务kafka/zookeeper/schema registry
,但每个服务都基于docker容器
所以我们打算在所有 kafka 机器上安装 docker
最后,每台 kafka 机器将包含 docker 服务和每台机器 3 个 docker 容器
问题是– 当所有其他对象都是 OS 磁盘的一部分时,docker 容器是否会产生负面影响?
其他建议是在每台机器上添加额外的磁盘并在附加磁盘上分配 docker 容器?
那么最佳做法是什么呢?
- 在 OS 磁盘上找到 docker 容器
- 将 Docker 容器放置在其他磁盘上(而不是操作系统磁盘)
答案1
您可以将 docker 从问题中删除,因为它正在组装其他 Linux 功能来创建容器。查看图形驱动程序以评估容器文件系统开销。这可能是 overlay2。一旦文件已打开进行写入并且已执行写入时复制,该性能可能与底层文件系统没有区别。但是,如果您从父映像层修改大量文件,则会出现大量写入时复制,这将导致一些开销。
通常,您不会将数据写入容器文件系统,而是将其作为卷挂载,并且其性能与该卷的源直接相关。NFS 挂载将具有 NFS 性能。绑定挂载到主机目录将具有该底层主机文件系统的性能。
是否将 docker 文件系统与 OS 磁盘分开通常不是性能问题,而是磁盘空间问题。容器可以增长,特别是如果您不限制日志文件大小。如果您提取新版本而不清理旧图像标签,则图像可以成倍增加。如果您意外地用 docker 填充文件系统,如果这不是根文件系统,则恢复起来要容易得多。