Redis / RedisSearch через некоторое время замедляется
У меня есть стек Redis, работающий внутри контейнера podman, который замедляется для определенных команд всего через пару часов безотказной работы. (Redis v6.2.13, RediSearch v. 2.6.12, RedisJSON v. 2.4.7)
Например, подсчет записей в определенном индексе со временем выполняется все медленнее и медленнее.
У меня есть служба .NET, которая вставляет данные (150 тысяч ключей, хранящихся в формате JSON) каждые ~10 минут, и срок действия каждого ключа истекает в разное время (TTL для каждого индекса разный).
Основным потребителем является API .net, обслуживающий примерно 70 клиентов, которые получают данные из Redis каждые примерно 15 секунд. Я отслеживаю SLOWLOG, и продолжительность команд увеличивается с ~10 мс при запуске контейнера до ~300 мс через 24 часа. Это происходит всего за пару команд (особенноFT.SEARCH idx LIMIT 0 0
)
Обе службы .net используют Redis.OM . Все возвращается в норму, когда я перезапускаю контейнер. Каковы могут быть возможные причины? Заранее спасибо.
Я деактивировал AOF и разрешил запускать только резервные копии каждые 1 минуту или около того. Ничего не произойдет, если я перезапущу сайты в IIS (или перезапущу пулы или что-нибудь еще). Я включил дефрагментацию памяти, но опять ничего не происходит.