mod_railsのrubyインスタンスが「不正」になります。これらのプロセスはpassenger-statusにリストされなくなり、100%CPUを使用します。
インスタンスを強制終了するためにgod/monitをインストールする以外に、これを防ぐ方法について誰かにアドバイスをいただけますか?ログに役立つものは何も見つかりませんでした。
mod_railsのrubyインスタンスが「不正」になります。これらのプロセスはpassenger-statusにリストされなくなり、100%CPUを使用します。
インスタンスを強制終了するためにgod/monitをインストールする以外に、これを防ぐ方法について誰かにアドバイスをいただけますか?ログに役立つものは何も見つかりませんでした。
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
Phusion Passenger に関連する ruby プロセスがあり、アイドル状態のはずなのに CPU を大量に消費していました。
走った後、問題はなくなりました
date -s "`date`"
このスレッドで提案されているように。(それは Debian Squeeze でした)
どうやら、この問題はうるう秒に関連しており、MySQL、Java などの他の多くのアプリケーションに影響を与える可能性があります。詳細については、 lklm のこのスレッドを参照してください。
これは乗客で繰り返し発生する問題です。私はこの問題を何度も見てきましたが、Ruby on Rails をパッセンジャーで実行している人々を助けてきました。修正はありませんが、これを試してみてください http://www.modrails.com/documentation/Users%20guide%20Apache.html#debugging_frozen