私は最近、phusionpassengerを運営するサイトを立ち上げました。残念ながら、スレッドがフリーズしたためにサイトがダウンしました。特定のPIDに対してkill-9を実行することで、サーバーを保存することができました。それでも、乗客はこれを自動的に管理できると思いました。 1GBのメモリを搭載したサーバーで1つのRailsアプリを実行し、乗客に最大7つのインスタンスを割り当てています。しかし、サイトがダウンしたことを発見したとき、乗客が6つのインスタンスを生成し、そのうちの1つが800 MBを超えるメモリを使用していて、サーバーがスワップしていることがわかりました。
その結果、サーバーにbluepillのようなものをセットアップしたいと思っていますが、それをどのように行うかについて少し混乱しています。主な理由は、bluepillが監視しているプロセスを開始/停止することを期待しているためです。ただし、私たちの場合、passengerはすでにプロセスを再開しているため、passengersインスタンスのpidを監視し、大きくなりすぎたらそれらを強制終了するだけで済みます。
ここで誰かがBluePillをセットアップして、phusionの乗客の下で実行されているRailsアプリを監視していますか?どんな洞察も役に立ちます。
ハックがなければ、これを簡単に行うことはできません。
ハックは、BluePillが開始するシェルスクリプトを作成することです。このスクリプトは、関心のあるプロセスを監視し、何かを超えた場合は、BluePillが失敗として検出するように終了します。
私はこの種のものを使用してシステムを監視していますが、これは5分ごとに1回実行されるcronジョブです。完璧ではありません。