56

私はここ数日からSignalRを見てきました。これを使用して、データベーステーブルに関するリアルタイム情報を取得するための管理ダッシュボードを作成しました。基本的に、このテーブルには、さまざまなアプリケーションのさまざまなユーザーが入力します。よく出てきました。これらの更新は、クライアントBroswerとWebServerの間に永続的な接続がある場合にのみ可能です。このアプリを本番環境にデプロイする前に、疑問はほとんどありません。

SignalRは最初にWebSocketをチェックし、次にクライアントとサーバー間の可用性に基づいてロングポーリングを探すことを理解しています。使用するものに関係なく、クライアントとサーバーの間で接続が開かれます。

私の質問は、より多くのユーザーが同じサーバーに接続しているシナリオ、たとえば100,000人の管理者が同時に接続しているシナリオでどのように機能するかです。IISには、一度に開くことができる永続的な接続の数に制限がありますか?もしそうなら、それを最大値に設定し、その値をどのようにすることができますか。

新人の質問ならごめんなさい

ASP.NETMVC3およびIIS7が開発に使用されます。

4

3 に答える 3

32

GitHubのSignalRWikiのパフォーマンスセクションを確認する必要があります。これは、次の点について非常に優れたガイダンスを提供します。

  • IIS構成-アプリケーションごとの最大同時リクエスト数
  • ASP.NET構成-同時リクエストの最大数とリクエストキューの制限

さらに、アプリケーションの負荷テストを実行するときに監視する主要なパフォーマンスカウンターについても説明します。アプリケーションがどのように実行されるかを真に理解し、特定のシナリオに必要に応じて調整を行うために、どのIMOを実行する必要がありますか。

最後に、 SignalRでクライアント負荷を生成するための推奨ツールであるCrankへのリンクがあります。

更新:クランクへのリンクが最新になりました。

于 2012-07-26T14:42:54.903 に答える
6

ペイジに感謝します。これが私の発見です。ASP.NET 4.0は、デフォルトでCPUごとに最大5000の同時要求を受け入れます。これを変更するには、この場所にあるASP.NET Configファイルでこの番号を設定する必要があります%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet.config

また、ScottHanselManによるこの素晴らしいポッドキャストを見つけました http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards

于 2012-07-28T13:02:01.870 に答える
0

接続制限が10*しかないWindows8/10では、おそらくこれに遭遇する可能性が高くなります。もちろん、これは開発中にのみ影響しますが、アクティブな接続で複数のブラウザを開いている場合は大きな問題であり、10を超えるのは非常に簡単です。

*現時点では、Windows10の接続制限がWindows8と同じであることを確認できませんが、おそらくそうです。

于 2015-10-11T20:27:08.527 に答える