私は Rails アプリの開発を行っていますが、表示されている内容について混乱しています。私はこれに慣れていないので、情報を誤解している可能性があります。1 つの Web プロセスを実行すると、良い結果が得られます。しかし、Web プロセスを起動すると、期待した結果が得られません。コストを決定できるように、本番環境で実行する必要がある数を計算しようとしています。
New Relic に基づいて、1 つの Heroku Dyno で 1 分あたり 3000 リクエスト (または 1 秒あたり約 50 リクエスト) で、1 リクエストあたり 40 ~ 60 MS の応答時間があります。物事はうまく機能しており、Web プロセスはプッシュされていません。Blitz では 1 秒でタイムアウトする応答もありますが、1 つの Dyno でできる限りプッシュしているので、期待しています。
今、私は Dyno のクランクアップを試みます。最初に 10 から 50 に。再び Blitz で突進すると、上記と同じ結果が得られます。50 個の dyno を実行して、250 人の同時ユーザーで Web サイトを攻撃すると、応答時間が 2 秒または 3 秒になりました。New Relic は 1 つの dyno と同じトラフィックを読み取り、1 秒あたり 3000 リクエスト、リクエスト時間は 60MS です。Blitz の応答時間は 3 秒で、最大 50 ~ 60 rps です。
ログを見ると、アクティビティがさまざまな Web プロセスにうまく分割されていることがわかります。ホームページに対してテストしているだけで、外部サービスやデータベース呼び出しにはアクセスしていません。私はキャッシュを使用していません。
1 つの Web プロセスが (Blitz ごとに) 1 秒あたり最大 60 のリクエストを簡単に処理できる理由がわかりませんが、Web プロセスを 10 または 50 に増やしても、追加のパフォーマンスは得られません。Blitz rush を数回実行して、同時ユーザーを増やしました。
何が起こっているかについて何か考えがある人はいますか?