1

ここでアドバイスを求めています。私の学校の学生セクションの登録プロセスはオンラインで、約 6,000 人の学生が関与しています

彼らは先着順で座席をベースにしています。毎年、彼らは正午にサイトを開き、良い席を得るためにできるだけ早く登録しようとする人が殺到します. 毎年必ずサーバーがクラッシュし、誰もが怒っています。

何年にもわたって自分自身を苛立たせた後、私は彼らの登録システムをやり直すことを申し出ました.

私の計画は、それを Ruby on Rails で書き直し、ホスティングに heroku を使用することです。

  • heroku dyno は一度に 1 つのリクエストしか処理しませんか?
  • Heroku は 50 dyno までスケールアップします。これは、約 6,000 人のユーザーをトランザクションごとに約 5 ページビューの短い時間 (たとえば 30 分) で処理するのに十分でしょうか?
  • このプロジェクトに飛び込む前に、役立つ戦略やヒントを教えてください。
4

2 に答える 2

2

heroku dyno は一度に 1 つのリクエストしか処理しませんか?

はい。Heroku dyno はシングルスレッドです。

Heroku は 50 dyno までスケールアップします。これは、約 6,000 人のユーザーをトランザクションごとに約 5 ページビューの短い時間 (たとえば 30 分) で処理するのに十分でしょうか?

これは、ページの読み込み速度によって異なります。議論のために、ページ リクエストごとに 2 秒かかり (Google アナリティクスの推奨に従って)、6,000 users x 5 page views / 30 minutes1 分あたり 1000 ページ ビューの読み込みが必要であると仮定します。

ページ読み込みあたり 2 秒の場合、1 つの dyno が 1 分あたり 30 ページ ビューを読み込みます。50 dyno の場合、これは 1 分あたり 1500 ページ ビューになります。これにより、明らかに全体的な目標を超えることができ、エラーの余地が残されますが、6000 人のユーザー全員が一度にページにアクセスすると、タイムアウトによっては 1 つの Heroku アプリが追いつかない可能性があります。ユーザーキューシステムを実装する必要があります-以下で説明します。

このプロジェクトに飛び込む前に、役立つ戦略やヒントを教えてください。

とは言っても、2 秒の読み込み時間は、ページが読み込む必要があるアセット、データベースと対話するために必要な量、クエリ、キャッシュなどによって異なる場合があります。また、ページの処理速度が大幅に向上する可能性もあります。

また、すべてのユーザーの初期ヒットについても心配する必要があります。これは、サイトを使用したことがある場合は、Ticketmaster が使用するものと同様の先着順サービス キュー システムを介して処理できます。これは、AWS SQS またはキュー システムの設定によって実現できます。

ユーザー キューとアセットのキャッシュ、および一般的なデータベース クエリを使用すると、50 以下の dyno でこれを達成できるはずです。

編集: Heroku が 50 の Web dyno を実行するというあなたの言葉を信じています。価格ページでは最大 24 と表示されていますが、何らかの情報が見つかりません。

于 2013-02-04T20:33:45.757 に答える
1

heroku dyno は一度に 1 つのリクエストしか処理しませんか?

使用する Web サーバーによって異なります ( https://devcenter.heroku.com/articles/dynos#dynos-and-requests )。dyno 内でより多くの同時実行が必要な場合は、Pumaのようなものを検討することをお勧めします。

Heroku は 50 dyno までスケールアップします。これは、約 6,000 人のユーザーをトランザクションごとに約 5 ページビューの短い時間 (たとえば 30 分) で処理するのに十分でしょうか? このプロジェクトに飛び込む前に、役立つ戦略やヒントを教えてください。

50 を超える dyno を持つことができます。あなたのアプリに対する具体的な答えは、推測や一般化よりもはるかに優れています。サイトに対して負荷テストを実行し (例: Blitzを使用)、実際の数値を見つけます。アドオンの料金は 1 秒ごとに比例配分されるため、インストールした期間に対してのみ料金が発生します。したがって、テストが終了したら、必ず Blitz をアンインストールまたはダウングレードしてください。

于 2013-02-04T22:03:45.247 に答える