Кэши Redis - когда могут быть инициированы крупные выселения? - PullRequest
0 голосов
/ 03 декабря 2018

У нас есть Redis Cache на Azure Standard 2.5gb.Мы наблюдаем следующее поведение:

enter image description here

Время от времени мы наблюдаем большие падения в использовании памяти.Похоже, что многие ресурсы выселяются.

На что следует обратить внимание:

  • Политика удаления - LRU
  • Доступный размер кэша - 2,5 ГБ
  • Нет прикладного кода, который высвобождает такие большие объемы памяти (самые большие объекты составляют ~ 80 КБ, а большинство значительно меньше)
  • Наблюдаемые потери памяти представляют десятки тысяч ключей
  • Мы редко используем явное истечение срока действиядаты в кешируемых объектах, и когда мы делаем это, они всегда <1 час. </li>

Мой вопрос, кроме логики приложения, явно высвобождающей ключи, есть ли другие обстоятельства, которые Redis может высвободить большим количеством ключей?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Очистка памяти может не отображать выселения.

Вы говорите «похоже», что много ресурсов выселяется, но если вы просто полагаетесь на исправленную память для этого появленияВы можете гоняться за призраками.Вы проверяли, как этот график перекрывается с метрикой Total Keys, доступной на портале Azure?Наложение двух серий должно позволить вам увидеть, действительно ли восстановление памяти на самом деле связано с выселением или это связано с другим процессом, например Azure, возможно, периодически вызывая MEMORY PURGE в экземпляре кэша.убирать грязные страницы?

0 голосов
/ 06 декабря 2018

Можете ли вы изменить политику повторного выселения на noeviction и посмотреть, решает ли это вашу проблему?Это означает, что вам придется управлять всем контентом самостоятельно.https://redis.io/topics/lru-cache имеет больше деталей.

...