【发布时间】:2009-08-03 20:26:55
【问题描述】:
今天,无缘无故,我的 rails(2.1.0) 应用程序非常慢,甚至没有响应。 它间歇性地发生。 所以有时它会起作用,但又不起作用。
当它不起作用时,我什至无法加载“脚本/控制台制作”。 我想知道它卡在哪里了。 如何逐步加载控制台,以便知道是哪个部分导致了问题?
谢谢。
山姆
【问题讨论】:
标签: ruby-on-rails console debugging
今天,无缘无故,我的 rails(2.1.0) 应用程序非常慢,甚至没有响应。 它间歇性地发生。 所以有时它会起作用,但又不起作用。
当它不起作用时,我什至无法加载“脚本/控制台制作”。 我想知道它卡在哪里了。 如何逐步加载控制台,以便知道是哪个部分导致了问题?
谢谢。
山姆
【问题讨论】:
标签: ruby-on-rails console debugging
您的服务器可能内存不足,因此机器无法响应您。如果您正在运行 mongrel,则对其进行 monit 以限制它可以使用的内存并在必要时重新启动。
如果您正在使用Passenger,请尝试限制实例数量,如果您已经这样做了,请查找一个脚本,该脚本通过cron作业在太大时杀死乘客实例。
如果不是内存问题,那么我可能需要更多信息。
【讨论】:
如果可以,请尝试暂时删除所有插件/宝石,看看应用程序是否会启动。其中之一可能是问题所在。
script/console 文件包含此内容。
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/console'
您可以找到 Rails 2.1 的 commands/console file here。
我建议加载 irb 并尝试从那里加载您的应用。
require 'config/boot'
如果可行,请尝试逐步检查提到的 commands/console script 的其余部分,找出问题所在。
如果启动文件无法加载,请查看config/boot.rb 文件,看看您是否可以确定哪个部分无法正常工作。祝你好运!
【讨论】:
当所有其他方法都失败时,您应该能够使用 strace 来调试脚本/应用程序实际在做什么。请注意,这应该只是最后的手段之一,因为它会产生极其冗长的信息(并且也主要限于 I/O 操作)。
例如尝试使用“strace 脚本/控制台生产”
【讨论】: