ここ数日、SignalR を見てきました。これを使用して、データベース テーブルに関するリアルタイム情報を取得する管理ダッシュボードを作成しました。基本的に、このテーブルにはさまざまなアプリケーションのさまざまなユーザーによってデータが取り込まれます。うまくいきました。これらの更新は、クライアント ブラウザーと Web サーバーの間に永続的な接続がある場合にのみ可能です。このアプリを本番環境に展開する前に、いくつか疑問があります。
SignalR は最初に WebSocket をチェックし、次にクライアントとサーバー間の可用性に基づいて Long Polling を探すことを理解しています。何を使用するかに関係なく、クライアントとサーバー間の接続が開かれます。
私の質問は、たとえば 100,000 人の管理者が同時に接続しているなど、同じサーバーに複数のユーザーが接続しているシナリオでは、どのように機能するかということです。IIS には、一度に開くことができる永続的な接続の数に制限がありますか? ある場合、その最大値に構成できますか。その値はいくらになりますか。
初心者の質問で申し訳ありません
開発には ASP.NET MVC3 と IIS 7 が使用されます。
ベストアンサー1
確認すべきはパフォーマンスセクションGitHub の SignalR Wiki を参照してください。これは、次の点について非常に優れたガイダンスを提供します。
- IIS 構成 - アプリケーションあたりの最大同時リクエスト数
- ASP.NET 構成 - 最大同時リクエスト数とリクエスト キューの制限
さらに、アプリケーションの負荷テストを実行するときに監視する主要なパフォーマンス カウンターも示しています。これは、アプリケーションのパフォーマンスを本当に理解し、特定のシナリオに応じて必要に応じて調整するために行うべきだと思います。
最後に、クランクSignalR を使用してクライアント負荷を生成するための推奨ツール。
アップデート: Crank へのリンクが最新になりました。