gpt4 book ai didi

ruby-on-rails - 如何随时间限制 Sidekiq 的 REDIS 内存使用量?

转载 作者:可可西里 更新时间:2023-11-01 11:27:46 25 4
gpt4 key购买 nike

我在 Rails 5 应用程序上将 SideKiq 与 Heroku Redis 结合使用。随着时间的推移,我的内存利用率呈线性增长,导致我不得不每个月左右升级我的计划。我的负载一直比较平稳。

我有一个 noeviction 的驱逐政策,正如 SideKiq wiki 中所推荐的那样。这是否意味着我的内存占用量会随着时间的推移继续有增无减?

最佳答案

您应该运行 2 个 Redis 实例,一个用于缓存,另一个专用于 Sidekiq。

这是 Sidekiq wiki 中的一个条目,对此进行了解释:

Many people use Redis as a cache (it works great as a Rails cache store) but it's important that Sidekiq be run against a Redis instance that is not configured as a cache but as a persistent store. I recommend using two separate Redis instances, each configured appropriately, if you wish to use Redis for caching and Sidekiq. Redis namespaces do not allow for this configuration and come with many other problems, so using discrete Redis instances is always preferred.

这样,缓存存储 Redis 将能够根据需要管理逐出和内存,而 Sidekiq Redis 将能够持久地保留作业而没有逐出的风险。正如您所说,Sidekiq Redis 实例应该设置noeviction

只是一个猜测,但你的内存线性增加的原因可能是因为在你的 Rails 应用程序的其他地方你会使用 Redis,并且由于驱逐政策,数据不会被清除,也许这甚至是 Rails在引擎盖下这样做,虽然我相信 Rails 会在任何地方设置 TTL,但我不确定。

关于ruby-on-rails - 如何随时间限制 Sidekiq 的 REDIS 内存使用量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com