2016-12-08 5 views
0

最近、DockerのRailsアプリをAmazon ECSに配備しました。私のアプリは2つのコンテナを使用しています.1つはアプリ用、もう1つはアプリサーバーとしてのPuma、もう1つはnginx用です。これはアプリのリバースプロキシとして機能します。私は2人の労働者と5人のスレッドのデフォルトのプーマ設定を使用していました。私はこれをt2.smallで実行しています。DumaのPumaワーカー、スレッドの設定方法

私たちは、アプリケーションが最終的に時間切れになる問題を見始めました。ユーザーは応答を得ないか、最終的にロードバランサから504の不良ゲートウェイエラーが発生します。 Railsのログでは、非常に異常な状況では、リクエストが突然長時間(800秒間)実行されることがわかります。数分後、プーマは新しい労働者を始め、通常の状態に戻ります。

私は、CPUコアの数と同じになるように、従業員を設定する必要があることをPumaのドキュメントで読んでいます。これはt2.smallで1であるため、これを行いました。私はあなたのアプリがスレッドセーフであるかどうかわからない場合は、それを混乱させるべきではないので、スレッドを1に設定します。 1人の作業者、1人のスレッド。

これまでのところ、1日中は大丈夫でした。

どのように並行処理を行うのですか?アプリケーションはほとんどRAMやCPUを使用しています - 私はちょうどより多くのタスク(1タスク= 1レールコンテナ+ 1 nginxコンテナ)をスピンアップする必要がありますか?私がプーマの前にnginxを持っていれば、それについても心配する必要はありますか?

答えて

1

私は、プーマを使用して、安全と記憶の肥満に多くの問題を抱えています。私は乗客に切り替えて、より良いパフォーマンスを見ました。私はDockerも使用しています。

関連する問題