Я использую AWS Redis для проекта и столкнулся с проблемой нехватки памяти (OOM).При исследовании проблемы я обнаружил пару параметров, которые влияют на объем используемой памяти, но математика, похоже, не подходит для моего случая.Я пропускаю какие-либо переменные?
Я использую:
- 3 шарда, 3 узла на шард
- cache.t2.micro тип экземпляра
default.redis4.0.cluster.on
группа параметров кэша
На веб-сайте ElastiCache указано, что cache.t2.micro имеет 0.555 GiB = 0.555 * 2^30 B = 595,926,712 B
память.
default.redis4.0.cluster.on
группа параметров имеетmaxmemory = 581,959,680
(только под памятью экземпляра) и reserved-memory-percent = 25%
.581,959,680 B * 0.75 = 436,469,760 B available
.
Теперь, глядя на метрику BytesUsedForCache в CloudWatch, когда у меня заканчивается память, я вижу узлы размером около 457M, 437M, 397M, 393M байтов.Для узла не должно быть больше 436M байт, вычисленных выше!
Чего мне не хватает;Есть ли что-то еще, что определяет, сколько памяти можно использовать?