我正在使用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个连接.