Redis кеш под Wordpress сожрал всю память, что делать?

Всем привет!

Думаю про плагин Object Cache Pro для WordPress слышали все, кто в теме.

У меня возник следующий вопрос про использование выделенной памяти: я установил для Redis 128 мегабайт. Оно постепенно начало её заполнять и спустя пару дней уже заняло 127 Мб. У меня на сайте около 3 тысяч товаров, 20 страниц, куча записей, в общем, база данных весит около 1 ГБ.

Я так понимаю, что ему сколько не выдели памяти - он всё сожрет? Как быть, добавить ещё или просто периодически очищать его?
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
@Refguser
Делаю ИМ и другие решения
Нет поводов для волнений, но можно увеличить объём памяти для редиса (см в конце.)

Насколько будет заполнение кеша зависит от настроек (что кешировать. на сколько и тп), трафика и пр. и будет ровно столько сколько нужно для эффективной работы сайта, но не больше выделенного.

Не по вопросу:
У меня на сайте около 3 тысяч товаров, 20 страниц, куча записей, в общем, база данных весит около 1 ГБ.

Вангую база не оптимизирована. У моего клиента товаров побольше (включая вариации), но база немногим больше 500мб.

А вот у того же клиента вывод
redis-cli info memory

>redis-cli info memory
# Memory
used_memory:141958480
used_memory_human:135.38M
used_memory_rss:173039616
used_memory_rss_human:165.02M
used_memory_peak:635899776
used_memory_peak_human:606.44M
used_memory_peak_perc:22.32%
used_memory_overhead:1240328
used_memory_startup:809688
used_memory_dataset:140718152
used_memory_dataset_perc:99.69%
allocator_allocated:142341576
allocator_active:145608704
allocator_resident:155316224
total_system_memory:25203458048
total_system_memory_human:23.47G
used_memory_lua:41984
used_memory_lua_human:41.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.02
allocator_frag_bytes:3267128
allocator_rss_ratio:1.07
allocator_rss_bytes:9707520
rss_overhead_ratio:1.11
rss_overhead_bytes:17723392
mem_fragmentation_ratio:1.22
mem_fragmentation_bytes:31143136
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:311440
mem_aof_buffer:0
mem_allocator:jemalloc-5.2.1
active_defrag_running:0
lazyfree_pending_objects:0


Ида. Тут используется W3T. У него наиболее тонкие возможности настроек.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Eugene-Usachev
@Eugene-Usachev
Не понимаю вашей проблемы. Redis будет удалять самые старые записи, если он заполнен. Если ничего не делать, он всё ещё будет хорошо работать в качестве кэша.

1 ГБ - это слабая загруженность, на самом деле. Такой объём можно полностью уместить в Redis или Tarantool.
Ответ написан
Комментировать
@Kypidon4ik
Фрилансер, Wordpress developer
Такая же ситуация была, с хостером решали этот вопрос вместе. Сайт с 200к+ записями. Нам в какой-то момент 32 гб стало мало при TTL кеша редис в 86400. Было решено просто добавить еще 1 плашку на 32 гб.
PS Скажу сразу что редис очень не любит когда его ограничивают в ОЗУ. При ограничении в ОЗУ начинает страдать ЦП. Замкнутый круг получается.
Итог: или откажитесь от объектного кеша или разрешите брать столько ОЗУ сколько надо или попробуйте уменьшить TTL кеша (но это тоже спорно)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы