我的开发机器(localhost)上有很多延迟运行webrick。浏览器发出请求时,它需要服务器大约8-9秒才能显示数据库的内容,其中只包含34000个文本列表,输出到浏览器窗口。
我想麻烦拍摄,以了解发生了什么。
我应该从哪里开始排查故障? 我认为首先要监视Web服务器日志以查看请求。 但是我在哪里可以在我的开发机器上找到它们?
我知道我可以在我的机器上找到apache日志
/var/log/apache2/access_log
但是Rails没有运行apache吗?它在端口3000上运行webrick
请帮忙。
答案 0 :(得分:1)
在开发模式下运行rails时,如:
rails s
..它通常作为前台进程自动运行WEBrick,并为每个客户端请求打印您正在寻找的信息类型。您可以通过编辑来检查/调整一些日志记录参数:
配置/环境/ development.rb
由于WEBrick是默认的Web服务器,因此Apache与它无关,除非您已配置环境以执行此操作。如您所述,默认端口为3000。
较新版本的Rails还可以自动记录数据库查询计划,以便花费很长时间才能返回。
#记录超过此查询的查询的查询计划(工作
#with SQLite,MySQL和PostgreSQL)
config.active_record.auto_explain_threshold_in_seconds = 0.5
您还应该根据您尝试优化的架构和查询检查特定数据库是否正确编制索引。
答案 1 :(得分:0)
是的,你是对的,rails使用它自己的网络服务器,webrick实际上是一个简单的HTTP网络服务器,你可以查看它的日志,当你运行 rails s 时,只用它来进行本地开发。如果您有大量数据,我建议使用带有apache的mongrel或ph.passenger,这个链接将引导您完成
http://www.gonfio.com/installing-ruby-rails-and-configuring-mongrel-ubuntu
修改强>
加速Webrick本身设置
:DoNotReverseLookup => false,
到
:DoNotReverseLookup => true,
位于/usr/lib/ruby/1.9.1/webrick/config.rb