ruby-on-rails – Rails Unicorn – 启动请求和到达控制器之间的延迟

我正在使用Unicorn作为我的Rails应用程序的应用服务器,并且试图找出为什么有时候在请求开始之间以及当它到达我的控制器时有时候是不平凡的(> 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秒的延迟:“搜索关键字的文章”,这是控制器方法的第一件事.

articles.json被路由到我的控制器方法文章”,它现在只是这样做:

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

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

end

这是我的路线

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

什么可能导致这种延迟?是因为独角兽工作忙吗?是因为独角兽的工作人员占用了太多的内存,导致系统缓慢吗?

注意:我不相信延迟是在任何数据库连接,但我可能是错误的.代码不需要进行数据库调用,我的数据库的最大连接数为1000,通常最多有1-2个连接.

解决方法

三个想法:

>你可能会使用美洲狮而不是独角兽更好地服务>可能是您的系统内存不足,或者可能有足够的内存可用:安装新文件解决瓶颈在哪里>还可能的是,您的数据库数量可能超过数据库允许的连接数,在这种情况下,实例必须等待其他人断开连接才能连接.这可能表现为不规则的5秒延迟,而不是每次发生.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...