Я не думаю, что полностью понимаю связь между object_store_memory и redis_max_memory. Сначала я думал, что redis db хранит все объекты в памяти, но тогда как размер хранилища объектов может быть больше, чем размер redis_max_memory? Или некоторые его части записываются на диск? Как расходуется оперативная память? RAM_CONSUMED = object_store_memory + redis_max_memory или это их объединение?
Как связаны object_store_memory и redis_max_memory?
Ответы (1)
БД Redis содержит только метаданные об объектах и задачах (т. е. для задач: от каких объектов зависит задача и идентификаторы выходных данных, которые она производит, какую функцию необходимо запустить для получения выходных данных; для объектов: на каких узлах ) в кластере хранится объект). redis_max_memory
ограничивает размер этой базы данных, старые записи отбрасываются по принципу LRU.
Фактические данные хранятся в хранилище объектов общей памяти (см. https://arrow.apache.org/docs/python/plasma.html), размер которого ограничен object_store_memory
. Опять же, старые объекты, которые в настоящее время не сопоставлены ни с одной рабочей памятью, будут удалены оттуда в порядке LRU. Также можно создать резервную копию хранилища объектов на диске, указав параметр плазменного_каталога. Это позволяет иметь хранилища объектов, превышающие размер вашей оперативной памяти, но также замедляет хранение объектов в зависимости от размера диска и объема буферного кеша.
Так что да, RAM_CONSUMED = object_store_memory + redis_max_memory
, если вы не поддерживаете хранилище объектов на диске, и в этом случае RAM_CONSUMED = redis_max_memory
.
Дайте мне знать, если у вас есть дополнительные вопросы.
object_store_memory
? Есть ли какое-то эмпирическое правило?
- person GoingMyWay; 04.05.2020
driver_object_store_memory
в Рэе, какие-либо предложения по установке его значения?
- person GoingMyWay; 04.05.2020