Мы используем ArangoDB 3.3.14 (Community Edition) с механизмом хранения MMFiles для относительно большого набора данных (чуть более 30 ГБ при резервном копировании).Мы запускаем его внутри док-контейнера, используя ECS.Наша виртуальная машина имеет 64 ГБ оперативной памяти, и мы выделили 55 ГБ исключительно для контейнера ArangoDB (мы установили жесткое ограничение для этого контейнера в 55 ГБ).
Когда ArangoDB только запускается и все коллекции загружаются вОЗУ заняло бы около 45 ГБ, поэтому у нас есть около 10 ГБ свободной ОЗУ для запросов и т. д.
Проблема в том, что через некоторое время (в зависимости от использования) ArangoDB съедает все55 ГБ ОЗУ и на этом не останавливаться.Он продолжает использовать ОЗУ сверх установленного жесткого предела, и в какой-то момент докер убивает контейнер с кодом завершения 137 и причиной состояния OutOfMemoryError: Контейнер уничтожен из-за использования памяти.
Перезапуск вызывает много проблемдля нас, потому что нам нужно ждать, пока все коллекции и графики снова загрузятся в ОЗУ.Для нашего набора данных это занимает около 1-1,5 часа, и вы не можете использовать ArangoDB, пока он «перезапускается».
Мой вопрос: как я могу ограничить использование оперативной памяти ArangoDB, скажем, до 54 ГБ, так что это никогдадостигает жесткого предела памяти, установленного для док-контейнера?