Совместно использовать ОЗУ между контейнерами Docker с помощью mmap () в библиотеке Annoy - PullRequest
3 голосов
/ 27 мая 2019

Я использую Раздражающую библиотеку , которая использует mmap () для загрузки некоторых файлов multi-Gb в оперативную память. Цель использования mmap () - загрузить файл в память только один раз, даже если это требуется различным процессам.

Используя докер, я планирую масштабировать с несколькими контейнерами, выполняющими один и тот же скрипт на одном хосте. Но файл multi-Gb должен быть загружен только один раз в ОЗУ (именно поэтому мы используем mmap ()), иначе мой сервер взорвется.

Файл multi-Gb находится в томе, смонтированном на моих контейнерах.

Но мне все еще нужно найти способ распределить оперативную память между контейнерами, чтобы я мог воспользоваться преимуществами mmap ().

Я нашел эту статью об использовании тега --ipc в Docker, но я не знаю, применимо ли это к моему случаю и как его реализовать. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 29 мая 2019

--ipc - красная сельдь.Для локальных томов никаких действий не требуется, если это один и тот же файл, то память будет разделена.Я подозреваю, что то же самое для удаленных томов, но не могу подтвердить, что удаленные тома не будут смонтированы многократно.

...