Вот мой вопрос для вас: Как «mem_fragmentation_rateo» влияет на производительность в Redis?Redis: Как «mem_fragmentation_ratio» влияет на производительность?
Я провел некоторое расследование в stackoverflow и redis.io, но я не мог найти ясного объяснения по поводу моего вопроса.
Как также объясняется в этой электронной книге https://www.datadoghq.com/wp-content/uploads/2013/09/Understanding-the-Top-5-Redis-Performance-Metrics.pdf на странице # 16, «Метрика mem_fragmentation_ratio дает отношение памяти, используемой как видимое операционной системой (used_memory_rss) к памяти, выделенной Redis (used_memory)».
Таким образом, как объяснено в http://redis.io/commands/INFO, «в идеале значение used_memory_rss должно быть немного выше, чем used_memory. При использовании rss >> большая разница означает фрагментацию памяти (внутреннюю или внешнюю), которая может быть оценена с помощью проверяя mem_fragmentation_ratio. Когда используется >> rss, это означает, что часть памяти Redis была отключена операционной системой: ожидайте некоторые значительные задержки ».
Итак, когда у нас есть более высокая «used_memory», чем «used_memory_rss», отрицательное влияние на узел Redis ясное, потому что это означает, что Redis начал использовать Swap, и это явно не подходит для производительности.
Но как насчет ситуации, когда у нас есть более высокая «used_memory_rss», чем «used_memory»? Вероятно, это должно означать, что наш распределитель памяти не «забрал» часть памяти, назначенной Redis в прошлом, и что Redis больше не использует (возможно, из-за временного всплеска). Однако я не могу понять, как это может негативно повлиять на производительность Redis. Почему я читаю много сообщений в Интернете, где люди так обеспокоены высоким «mem_fragmentation_ratio»? Также в книге, о которой я упоминал ранее, они предлагают иметь «mem_fragmentation_rateo» между 1 и 1.5.
В этой ситуации, когда у нас есть более высокий «used_memory_rss», действительно ли Redis затронут? Должны ли мы ожидать ухудшения производительности Redis с высоким «mem_fragmentation_ratio»?
Я решил задать вам этот вопрос, потому что я честно считаю, что с высоким «mem_fragmentation_ratio» у нас может быть проблема «только» в ОС, которая «может» страдать от нехватки памяти: ОС может Не выделяйте новую память для новых процессов. В любом случае, он не должен напрямую влиять на Redis (если ОС не начнет замедляться и т. Д.).
Не могли бы вы прояснить мои сомнения? Был ли у вас опыт работы с высоким «mem_fragmentation_ratio», и вы начали замечать ухудшение производительности Redis?
Спасибо