gpt4 book ai didi

ruby-on-rails-4 - 很慢:ActiveRecord::QueryCache#call

转载 作者:行者123 更新时间:2023-12-04 01:00:01 25 4
gpt4 key购买 nike

我在 heroku 上有一个应用程序,在 Puma 上运行:

workers 2
threads_count 3
pool 5

看起来有些请求卡在中间件中,这使得应用程序非常慢(非常!)。
我已经看到其他人讨论这个问题,但到目前为止还没有解决方案。

如果您有任何提示,请告诉我。

aactiverecord_querycache_1
!

aactiverecord_querycache_2
!

最佳答案

我为 Heroku 支持和 Middleware/Rack/ActiveRecord::QueryCache#call 工作是 New Relic 经常报告的一个问题。不幸的是,每次问题的根源都在其他地方时,这通常是一个转移注意力的问题。
QueryCache是 Rails 首先尝试检查连接以供使用的地方,因此连接的任何问题都会在此处显示为请求“卡住”等待。这并不意味着数据库服务器必然没有连接(如果您有 Postgres 的 Librato 图表,它们会显示这一点)。这可能意味着某些原因导致某些数据库连接进入错误状态,并且正在等待新的连接请求。这可能发生在使用多线程的旧版 Puma 和 reaping_frequency 中。已设置 - 如果某些连接进入不良状态而其他连接被回收,这将导致问题。

一些高层建议如下:

  • 升级 Ruby & Puma
  • 如果使用 rack-timeout gem,也升级一下

  • 这些升级通常会有所帮助。如果没有,还有其他选项可以查看,例如从线程切换到基于工作线程的进程或使用 Postgres 连接池(如 PgBouncer)。我们有更多关于配置与 Postgres 一起使用的并发 Web 服务器的建议: https://devcenter.heroku.com/articles/concurrency-and-database-connections

    关于ruby-on-rails-4 - 很慢:ActiveRecord::QueryCache#call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35492483/

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