スワップ スペースが構成されていない仮想サーバーで、apache+passenger を使用して Rails アプリケーションを実行しています。
サイトは、毎日 20 万件以上のリクエストでかなりの量のトラフィックを取得し、システム全体でメモリが不足し、システム全体で奇妙な動作が発生することがあります。
問題は、メモリが不足しないように apache またはパッセンジャーを構成する方法があるかということです (たとえば、300M 以上のメモリを使用し始めたときにパッセンジャー インスタンスを適切に再起動するなど)。
サーバーには 4GB のメモリがあり、現在、パッセンジャーの PassengerMaxRequests オプションを使用していますが、ここでは最も確実なソリューションではないようです。
現時点では、nginx に切り替えることもできないため、スペースを確保するためのオプションではありません。
私がおそらく見逃している賢いアイデアは大歓迎です。
編集:私の一時的な解決策
Rails インスタンスが一定量のメモリ使用量を超えたときに、Rails インスタンスを再起動することはしませんでした。Engine Yard は、 ActiveRecord のメモリ膨張の問題について素晴らしいブログ記事を書きました。これは、この件に関する私たちの主な容疑者です。アプリケーションを最適化する時間があまりなかったので、PassengerMaxRequests を 300 に設定し、サーバーに 2GB のメモリを追加しました。それ以来、状況は良好です。最初は Rails インスタンスを連続して再起動すると遅くなるのではと心配していましたが、心配するほどの影響はないようです。