gpt4 book ai didi

memory - Jruby、垃圾收集器、Redis

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

我有一个 Jruby On Rails 应用程序,它使用多个 WS 来收集数据。该应用程序处理数据并将其显示给用户,用户进行更改,然后将其发送回 WS。

这里的问题是我将所有内容都存储在使用内存存储的缓存(基于 session )中。但是有时会在没有明确原因的情况下(至少对我而言)弹出此错误:

ActionView::Template::Error (GC overhead limit exceeded)

我阅读了我能找到的有关它的内容,显然这意味着垃圾收集器花费了很多时间来尝试释放内存,并且在这个方向上没有取得真正的进展。我的猜测是,由于所有内容都像缓存一样存储在内存中,因此 GC 会尝试释放它但无法做到并抛出此错误。

下面是问题。

  • 我该如何解决这个问题?
  • 如果我从内存存储切换到Redis,如果我的假设是正确的,这个问题还会出现吗?
  • GC 会尝试释放 Redis 的内存区域吗? (这可能是一个愚蠢的问题,但是......尽管如此请帮忙 :) )

谢谢。

最佳答案

Redis 是一个单独的进程,因此您的应用垃圾收集器不会触及它。但是,redis 可能会用完应用程序可用的所有内存,或者您实际上使用的是进程内存缓存而不是 redis,这是一种不同类型的内存存储。

关于memory - Jruby、垃圾收集器、Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472910/

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