web-dev-qa-db-ja.com

シグナルを使用している間、IIS

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

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

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

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

ASP.NET MVC3&IIS 7は開発に使用されます。

43
Pavan Josyula

GitHubのSignalR Wikiの パフォーマンスセクション を確認してください。これにより、次の点について非常に優れたガイダンスが提供されます。

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

さらに、アプリケーションの負荷テストを実行するときに監視する主要なパフォーマンスカウンターを示します。アプリケーションの実行方法を真に理解し、特定のシナリオに必要な調整を行うには、どのIMOを実行する必要があります。

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

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

26
Paige Cook

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

また、Scott HanselManによるこのすばらしいPodCastを見つけました http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards

5
Pavan Josyula

接続制限がわずか10 *であるWindows 8/10でこれに遭遇する可能性が高いでしょう。もちろん、これは開発中にのみ影響しますが、アクティブな接続で複数のブラウザを開いており、10を超えるのは非常に簡単です。

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

0
Simon_Weaver