我有一个 docker 容器,它对磁盘进行大量读/写操作。我想测试当我的整个 docker 文件系统都在内存中时会发生什么。我在这里看到一些答案说这不会是真正的性能改进,但这是为了测试。
我想测试的理想解决方案是共享每个图像的公共部分,并在需要时复制到您的内存空间。
在运行时创建的每个容器文件也应该位于内存中并分开。空闲时间不应超过 5GB fs,处理时间不应超过 7GB。
简单的解决方案将为每个容器复制所有共享文件(甚至是您从未使用的操作系统的那些部分)。
图像的存储和容器的基本文件系统之间没有区别,分层的 FS 直接作为 RO 层访问图像层,容器使用上面的 RW 层来捕获任何更改。因此,让容器在内存中运行而 Docker 安装保留在磁盘上的目标并不容易实现。
如果您知道 RW 活动发生在哪里(很容易检查docker diff
正在运行的容器),对我来说最好的选择是在容器中的该位置安装 tmpfs,这是 docker 本身支持的(来自docker 运行参考 https://docs.docker.com/engine/reference/commandline/run/#mount-tmpfs-tmpfs):
$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)