20

mod_railsのrubyインスタンスが「不正」になります。これらのプロセスはpassenger-statusにリストされなくなり、100%CPUを使用します。

インスタンスを強制終了するためにgod/monitをインストールする以外に、これを防ぐ方法について誰かにアドバイスをいただけますか?ログに役立つものは何も見つかりませんでした。

4

4 に答える 4

11

Linuxを使用している場合は、「strace」ユーティリティをインストールして、すべてのCPUを消費しているRubyプロセスの動作を確認できます。それはあなたに良い低レベルのビューを与えるでしょう。パッケージマネージャーで利用できるはずです。次に、次のことができます。

$ sudo strace -p 22710
Process 22710 attached - interrupt to quit
...lots of stuff...
(press Ctrl+C)

次に、プロセスを途中で停止してスタックトレースをダンプする場合は、Rubyでの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"

http://duckpunching.com/passenger-mod_rails-for-development-now-with-debuggerで説明されているように、ruby-debug Gemを使用して、開いたデバッグソケットにリモート接続することもできます。

面白そうなPassengerインスタンスのデバッグに関係するGithubのプロジェクトもあるようですが、ドキュメントが不足しています:http: //github.com/ddollar/socket-debugger/tree/master

于 2009-03-24T21:17:33.570 に答える
4

Phusion Passenger に関連する ruby​​ プロセスがあり、アイドル状態のはずなのに CPU を大量に消費していました。

走った後、問題はなくなりました

date -s "`date`"

このスレッドで提案されているように。(それは Debian Squeeze でした)

どうやら、この問題はうるう秒に関連しており、MySQL、Java などの他の多くのアプリケーションに影響を与える可能性があります。詳細については、 lklm のこのスレッドを参照してください

于 2012-10-24T08:27:01.623 に答える
2

これは乗客で繰り返し発生する問題です。私はこの問題を何度も見てきましたが、Ruby on Rails をパッセンジャーで実行している人々を助けてきました。修正はありませんが、これを試してみてください http://www.modrails.com/documentation/Users%20guide%20Apache.html#debugging_frozen

于 2009-03-08T13:00:04.603 に答える