web-dev-qa-db-ja.com

Meteor.jsで構築されたWebアプリは何人の同時ユーザーを処理できますか?

コンテスト中に投票者を投票し、中央ディスプレイにリアルタイムの投票統計を表示するために使用するWebアプリを構築しています。

コンテストは15分間続き、その間、約4000人のユーザーがWebアプリに接続して投票を送信しますが、ユーザーデバイスごとに異なります。

Meteor.jsを使用してこのようなWebアプリを開発しようと考えています。ただし、このように大量の同時ユーザー向けのサービスを開発した経験がほとんどなく、Meteor.jsのベータ版の状態のため、プロジェクトの実際の実現可能性に関していくつか懸念があります。

以下は、私たちが取り組んでいる質問です。

  1. Meteorが処理できる同時ユーザー数のベンチマークはありますか?これは、Webアプリ自体の複雑さに依存すると思います。私たちの場合、それはかなり単純です。中央ディスプレイに使用されるクライアントのみが、ライブMongoクエリvotes.find({})にサブスクライブされ、残りのユーザーには、 votealready voted ボタン。

実際のケースまたはテストシナリオからのデータがあると、非常に役立ちます。

  1. Meteorのインフラストラクチャは4000ユーザーを処理できますか?または、この 削除された質問 にリストされている他のホスティングソリューションを使用する必要があります(それを表示するには10k以上の担当者が必要です)?

  2. 注意すべきMeteor.js固有のパフォーマンスに関する考慮事項はありますか?

私たちはすでに同様の投稿を見てきましたが、そのような大量のユーザーを短時間で扱っていたものはありませんでした。

また、 Cluster smart package を使用することもできます。誰もがこれで何か経験がありますか?

44
francesco

[〜#〜] update [〜#〜]ClassCraftは、6400の同時ユーザーを処理する1つのMeteorサーバーを報告します。詳しくは Why Meteor記事のスケーラビリティセクション をご覧ください。

フォーラム投稿も参照
現在の最大の流星アプリをサポートする同時ユーザーの数は?


これは、同時ユーザーに関するベンチマークではなく、サブスクリプションのセットアップに関するものです(おそらく、よりストレスの多いテストです)。

アルノダは最近、meteor-down(負荷テストツール @ alanningのmeteor-load-testと同様 )と Cluster 、Meteor負荷を使用したテストの結果を公開しましたバランスツール。

テストは最も安価なDigital Oceanサーバー(512MB RAM、$ 5 /月)で実行され、結果はかなり印象的でした。

enter image description here

上記のすべてのシナリオで、サーバーの応答時間は8ミリ秒未満です。

基本的に、1台のコモディティマシンで1分あたり2500 Meteorサブスクリプションを処理し、8ミリ秒以内に応答できます。水平スケーリングのオーバーヘッドは5%未満です。

このテストの詳細については、 流星クラスターパフォーマンステスト:印象的な結果 を参照してください。

38
Dan Dascalescu

https://github.com/alanning/meteor-load-test

アプリをすばやくモックアップする場合、15分間で4000接続のテストを設定するのはかなり簡単です。私は個人的には使用していませんが、自分のアプリケーションの具体化が完了したら使用する予定です。

11
Andy Eskridge

正直な答えは、すべてのケースが異なり、システムが異なる負荷の下でどのように動作するかに関して、人々があなたに与えることができる厳格なルールはないということです。

あなたの最善の策は、1つまたは2つの機能を備えたシステムの単純なプロトタイプを実際に構築し、複数の同時ユーザーを使用していくつかのパフォーマンステストを実行して、制限とは何かを判断することです。これにより、プロトタイプを反復し、必要なユーザー数をサポートできるかどうか、またはどのようにサポートできるかを判断するための適切な基礎が得られます。

4
robjohncox