在Annoy库中使用mmap()在Docker容器之间共享RAM

时间:2019-05-27 15:30:56

标签: linux docker ram mmap annoy

我正在使用Annoy library,它正在使用mmap()将某些多Gb文件加载到RAM内存中。使用mmap()的目的是即使在不同的进程需要文件的情况下,也只能在内存中将文件加载一次。

我打算使用docker扩展到在同一主机上执行相同脚本的多个容器。但是多Gb文件只能在RAM中加载一次(这就是我们使用mmap()的原因),否则我的服务器将爆炸。

multi-Gb文件位于我的容器上安装的卷中。

但是我仍然需要找到一种在容器之间共享RAM的方法,以便获得mmap()的优点。

我发现this article关于在docker中使用--ipc标签,但我不知道它是否适用于我的情况以及如何实现。欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

--ipc是红色鲱鱼。对于本地卷,不需要任何操作,如果它是同一文件,则将共享内存。我怀疑远程卷也是如此,但是无法确认远程卷不会多次装入。