Webrick的回应非常缓慢.如何加快速度?

88 oracle sqlplus ruby-on-rails webrick

我有一个Rails应用程序,我正在我的服务器上运行.当我转到远程桌面并尝试加载应用程序时,服务器需要3-4分钟才能响应一个简单的HTML页面.但是,当我在服务器上本地加载页面时,页面只会显示一秒钟.我尝试从远程桌面ping服务器,ping在合理的时间内成功.

这一切似乎都是在我安装了Oracle的基本客户端和SQLPLUS之后开始的.我应该怀疑甲骨文吗?有没有人经历过类似的事情?

Mos*_*cho 139

这里有同样的问题(甚至一年后).在linux下你必须做以下事情:

查找文件/usr/lib/ruby/1.9.1/webrick/config.rb并进行编辑.

更换线

:DoNotReverseLookup => nil,
Run Code Online (Sandbox Code Playgroud)

:DoNotReverseLookup => true,
Run Code Online (Sandbox Code Playgroud)

重新启动webrick,它会像魅力一样工作:)

  • 成功了!当我们在本地网络中从另一台计算机提供静态内容时,Webrick的速度很慢.这解决了它.唯一的区别是config.rb位于:〜/ .rvm/rubies/ruby​​-1.9.2-p180/lib/ruby​​/1.9.1/webrick/config.rb - 因为我们使用的是RVM. (21认同)
  • 我拥有的ruby版本是ruby-1.8.7-p330,它似乎没有DoNotReverseLookup选项.字符串"DoNotReverseLookup"不会出现在webrick的config.rb中或〜/ .rvm/rubies/ruby​​-1.8.7-p330/lib/ruby​​/1.8中的任何位置.在ruby-1.8.7-p330中有没有什么好方法可以解决这个问题? (10认同)
  • 谢谢我的好男人,这为我解决了. (2认同)

Pro*_*ica 36

有同样的问题.对我来说,这篇文章坚持了解决方案.如果您使用的是Ubuntu,请停止(或卸载)avahi-daemon.service avahi-daemon stop停止守护进程.

Webrick现在感觉很快.

这个问题在Rails灯塔中有一个旧报告,然而,Ruby-on-Rails 从那时起就已经将票证转移到了github ; 不幸的是,这个老问题仍然存在.

但请注意,如果您实际使用 avahi-daemon某些内容,例如在网络上查找打印机和扫描仪,那将无法使用.


Kje*_*ski 23

刚遇到同样的问题.该

...
:DoNotReverseLookup => true,
...
Run Code Online (Sandbox Code Playgroud)

也为我做了伎俩.万一你在rvm下运行ruby,这里有一条路:

~/.rvm/rubies/ruby-<version>/lib/ruby/<version>/webrick/config.rb
Run Code Online (Sandbox Code Playgroud)


Jam*_*ren 15

"瘦"现在是在本地运行的一个很好的选择 和Heroku:

在Heroku上:https://devcenter.heroku.com/articles/rails3#webserver

网站:http: //code.macournoyer.com/thin/

您可以通过放入Gemfile在本地使用它:

gem "thin"
Run Code Online (Sandbox Code Playgroud)

...然后运行bundle并使用thin start或启动服务器rails s.

Heroku更新

对于Heroku来说,Thin现在被认为是一个糟糕的选择.更多信息:

https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq

他们的建议:

切换到JRuby上的Unicorn或Puma等并发Web后端,允许dyno管理自己的请求队列并避免阻塞长请求.


mac*_*nir 6

我有一个模糊的类似问题,当通过VPN访问WEBrick服务器时表现出来.请求将花费很长时间,其中大部分都没有发生任何事情.由于在Windows上既mongrel没有thingem 也没有使用Ruby1.9,也没有办法让我自己卷入编译来自源代码的东西,我需要坚持使用WEBrick.

整个解决方案的配置参数设置DoNotReverseLookuptrue,创建WEBrick服务器时:

server = HTTPServer.new {:DoNotReverseLookup => true, ...}
Run Code Online (Sandbox Code Playgroud)


Mat*_*eri 5

您可以使用Apache或安装Thin.在你的Gemfile中:gem 'thin'

或者,您可以检查railsWeb服务器列表.