Если вы используете Linux, вы можете установить утилиту «strace», чтобы узнать, что делает процесс Ruby, потребляет весь процессор. Это даст вам хорошее представление низкого уровня. Он должен быть доступен в вашем диспетчере пакетов. Тогда вы можете:
$ sudo strace -p 22710
Process 22710 attached - interrupt to quit
...lots of stuff...
(press Ctrl+C)
Затем, если вы хотите, чтобы остановить процесс в середине и дамп стека, вы можете следить за руководство по использованию GDB в Рубине на http://eigenclass.org/hiki.rb?ruby+live+process+introspection, в частности, делает:
gdb --pid=(ruby process)
session-ruby
stdout_redirect
(in other terminal) tail -f /tmp/ruby_debug.(pid)
eval "caller"
вы также можете использовать рубиново-отладку Gem удаленно подключаться к отладочным сокетам вы открывающие, описанным в http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger
Там также, кажется, проект по Github касается отладки пассажирских экземпляров, выглядит интересно, но documentat ion отсутствует: http://github.com/ddollar/socket-debugger/tree/master
для меня это происходит только тогда, когда я перезапускаю apache для первых запросов - как только процесс выполняет то, что делает приложение, выполняется нормально. Но на сайт может занять от 10 минут (без трафика) до 3-6 часов (с трафиком) - для меня это не вариант, но хотелось бы понять, что происходит и почему это происходит – Spasm