今天,我的rails(2.1.0)应用程序非常慢,甚至没有响应。 它间歇性地发生。 所以有时它会起作用,但它又不起作用。
当它不起作用时,我甚至无法加载'脚本/控制台生产'。 我想知道它被困在哪里。 如何逐步加载控制台以便我可以知道导致问题的部分?
感谢。
萨姆
答案 0 :(得分:1)
如果你能够,请尝试暂时删除所有插件/宝石,看看该应用是否会启动。其中一个可能是问题。
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
文件,看看是否可以确定哪个部分无效。祝你好运!
答案 1 :(得分:1)
您的服务器可能内存不足,因此机器无法响应您。如果你正在运行mongrel,那么就可以使用monit来限制它可以使用的内存并在必要时重新启动。
如果您正在使用Passenger,请尝试限制实例数量,如果您已经这样做,那么通过cron作业查找一个过大的乘客实例的脚本。
如果这不是内存问题,那么我可能需要更多信息。
答案 2 :(得分:0)
当所有其他方法都失败时,您应该能够使用strace来调试脚本/应用程序实际执行的操作。请注意,这应该只是最后一个度假村之一,因为它产生非常详细的信息(并且主要限于I / O操作)。
尝试使用'strace script / console production'作为示例