3

私は Heroku が初めてで、RoR アプリに必要な可能性のある dyno の数を推測する方法について考えたいと思います (顧客にいくつかの数を与える必要があります)。

アプリはすでに無料の 1 dyno で実行されています。アプリの基本情報は次のとおりです。

  • アプリは主にデータベースの読み取りであり、書き込みはほとんどありません
  • 距離の計算を含むクエリで、DB の負荷が高い可能性があります (gmaps4rails を使用して緯度と経度から)
  • WAPT (評価版) を使用したいくつかの基本的なテストから、典型的な検索要求には 1 分かかるようです。~1.3 秒、平均 ~2 秒、最大 4~5秒
  • 繰り返しますが、WAPT テストでは、最大 20 人の同時ユーザーで、Heroku のログを観察すると、キューに入れられているリクエストは見られないようです。
  • その他のリクエストは主に静的なアセットです

X 人の同時ユーザーを処理するために必要な dyno の数、または 1 つの dyno で処理できる可能性のある同時ユーザーの数を大まかに把握するにはどうすればよいでしょうか?

4

1 に答える 1

13

更新: Heroku は dyno の価格ポリシーhttps://www.heroku.com/pricingを変更したため、これらの情報はもはや正しくない可能性があります。

この記事http://neilmiddleton-eu.herokuapp.com/getting-more-from-your-heroku-dynos/によると、Unicorn を使用する場合、1 つの dyno で 1 日あたり 100 万のリクエスト (1 リクエストあたり 100 ミリ秒) を処理できます。したがって、S3 ですべてのメディアをホストする場合、1 つのページ ビューには 3 つのリクエスト (1 つの html、1 つのパイプラインの CSS、1 つのパイプラインの JavaScript) が必要であり、1 つの dyno は 1 日あたり約 300.000 ページ ビュー、または 1 秒あたり 80 ページ ビューを処理できます。ユニコーン。

1 人のユーザーが 5 秒で 1 ページを表示し、アプリケーションが 300 ミリ秒で応答できるとします。技術的には、1 つの dyno で約 400 人の同時ユーザーがいるとします。

しかし実際には、私たちのアプリケーション (非常に重い) では、1 つの dyno はそれらの 1/10、つまり約 50 人の同時ユーザーしか受け入れることができません。

これがあなたを助けることを願っています!

于 2013-04-09T08:51:12.457 に答える