Wenn Sie Linux verwenden, können Sie das Dienstprogramm "strace" installieren, um zu sehen, was der Ruby-Prozess macht, der die gesamte CPU verbraucht. Dadurch erhalten Sie eine gute Sicht auf niedriger Ebene. Es sollte in Ihrem Paketmanager verfügbar sein. Dann können Sie:
$ sudo strace -p 22710
Process 22710 attached - interrupt to quit
...lots of stuff...
(press Ctrl+C)
Dann, wenn Sie den Prozess in der Mitte stoppen wollen und ein Stack-Trace-Dump können Sie die Anleitung zur Verwendung von GDB in Ruby bei http://eigenclass.org/hiki.rb?ruby+live+process+introspection folgen, und zwar tun:
gdb --pid=(ruby process)
session-ruby
stdout_redirect
(in other terminal) tail -f /tmp/ruby_debug.(pid)
eval "caller"
Sie können auch die Rubin-debug Gem verwenden remote-Debug-Sockets verbinden Sie öffnen, beschrieben in http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger
Es scheint auch ein Projekt auf Github mit Debug-Passagier-Instanzen betroffen zu sein, aber die DOKUMENTAT interessant aussieht Ion fehlt: http://github.com/ddollar/socket-debugger/tree/master
für mich geschieht dies nur, wenn ich Apache für die ersten Anforderungen neu starten - sobald der Prozess macht, was es tut, läuft die Anwendung gut. Aber es kann dauern von 10 Minuten (kein Verkehr) bis 3-6 Stunden (mit Verkehr) auf die Website kommen - für mich ist dies keine Option, aber würde gerne verstehen, was los ist und warum es passiert – Spasm