gpt4 book ai didi

ruby-on-rails - Rails Unicorn - 启动请求和到达 Controller 之间的延迟

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:35 30 4
gpt4 key购买 nike

我正在使用 Unicorn 作为我的 Rails 应用程序的应用程序服务器,并且我试图弄清楚为什么有时在请求开始和请求到达我的 Controller 之间会有一个重要的(> 5 秒)延迟.

这是我的 production.log 打印出来的:

Started GET "/search/articles.json?q=mashable.com" for 138.7.7.33 at 2015-07-23 14:59:19 -0400**
Parameters: {"q"=>"mashable.com"}

Searching articles for keyword: mashable.com, format: json, Time: 2015-07-23 14:59:26 -0400

请注意在 STARTED GET: 和“为关键字搜索文章”之间有 7 秒的延迟,这是 Controller 方法做的第一件事。

articles.json 被路由到我的 Controller 方法“articles”,它现在只是这样做:

def articles
format = params[:format]
keyword = params["q"]

Rails.logger.info "Searching articles for keyword: #{keyword}, format: #{format}, Time: #{Time.now.to_s}"

end

这是我的routes.rb

MyApp::Application.routes.draw do
match '/search/articles' => 'search#articles'
#more routes here, but articles is the first route
end

什么可能导致这种延迟?是因为 unicorn worker 忙吗?是不是Unicorn worker占用内存太多导致系统变慢?

注意:我不认为延迟是建立任何数据库连接,但我可能是错的。代码不需要调用数据库,我的数据库最大连接数是1000,一般最多1-2个连接数。

最佳答案

三个想法:

  1. 使用 Puma 代替 Unicorn 可能会更好

  2. 可能是您的系统内存不足,或者可能有足够的可用内存:安装 New Relic 以解决瓶颈问题

  3. 也可能是您拥有的 Unicorn 实例多于数据库允许的连接数,在这种情况下,实例必须等待其他实例断开连接才能连接。这可能会以不规则的 5 秒延迟表现出来,而不是每次都发生。

关于ruby-on-rails - Rails Unicorn - 启动请求和到达 Controller 之间的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31596109/

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