консоль рельсов не загружается - PullRequest
0 голосов
/ 04 августа 2009

Сегодня ни с того ни с сего мое приложение rails (2.1.0) работает очень медленно или даже не отвечает. Это происходит с перерывами. Так что иногда это работает, но опять же это не работает.

Когда это не работает, я даже не могу загрузить «производство сценариев / консолей». Я хочу знать, где он застрял. Как пошагово загрузить консоль, чтобы узнать, какая часть вызывает проблему?

Спасибо.

Sam

Ответы [ 3 ]

1 голос
/ 04 августа 2009

Если вы можете, попробуйте временно удалить все плагины / гемы и посмотреть, будет ли приложение загружаться. Вероятно, одной из них является проблема.

Файл script/console содержит это.

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/console'

Файл команд / консоли можно найти здесь для Rails 2.1.

Я рекомендую загрузить irb и попробовать загрузить ваше приложение оттуда.

require 'config/boot'

Если это работает, попробуйте выполнить остальные из упомянутых команд / сценарий консоли , чтобы выяснить, в какой части возникла проблема.

Если загрузочный файл не загружается, посмотрите на этот config/boot.rb файл, чтобы узнать, сможете ли вы определить, какая часть не работает. Удачи!

1 голос
/ 04 августа 2009

Возможно, вам не хватает памяти на вашем сервере, и машина не может ответить вам. Если вы работаете с mongrel, установите на нем монитор, чтобы ограничить объем памяти, который он может использовать, и перезапустите его при необходимости.

Если вы используете Passenger, попробуйте ограничить количество экземпляров, и, если вы уже сделали это, найдите скрипт, который убивает экземпляры пассажира, когда он слишком велик с помощью задания cron.

Если это не проблема с памятью, возможно, мне понадобится дополнительная информация.

0 голосов
/ 04 августа 2009

Когда все остальное терпит неудачу, вы должны иметь возможность использовать strace для отладки того, что на самом деле делает скрипт / приложение. Обратите внимание, что это должен быть только один из последних способов, поскольку он выдает чрезвычайно подробную информацию (и также в основном ограничивается действиями ввода-вывода).

Попробуйте использовать 'strace script / console production', например

...