2

WebSocket ++ 0.3.xライブラリでは、アクティブな接続を持つことができるWebSocketクライアントの数の制限を決定するものは何ですか?スレッドごとに1つの接続ですか、それとも1つのスレッドで複数のWebSocketクライアント接続を処理できますか?後者の場合、1つのスレッドが保持できる接続の数はおおよそいくつですか?

基本的に、WebSocket++ライブラリが約25スレッドの空きがあるアプリケーションで処理できるクライアント接続の数を探しています。ライブラリのホームページは次のとおりです 。http ://www.zaphoyd.com/websocketpp

4

1 に答える 1

2

非ブロッキング/非同期I/O(Linuxではepoll、OS X / BSDではkqueue、Windowsではiocp)をサポートするプラットフォームでBoostの最新バージョンでBoost.Asioベースのトランスポートポリシーを使用している場合、WebSocket++は使用しません同時接続に重大な制限を導入します。

このような状況では、制限はOS、ハードウェア、およびアプリケーションの要因にほぼ基づいています。OSは、プロセスごとに使用されるファイル記述子の総数を制限します(rootアクセスを使用すると、この制限を変更できます)。同時実行レベルが高い場合は、アプリケーションを適切に構造化して処理する必要があります(主に、短い制限時間の非ブロッキングハンドラーを使用します)。他の要因は、汎用サーバーが制限されるのと同じ方法であなたを制限します。ギガビットイーサネットは非常に多くのトラフィックしか処理できません。TLSまたは圧縮を使用するとパフォーマンスが低下します。

私はまだ0.3.xで広範なパフォーマンスのベンチマークを行っていませんが、適切に調整されたアプリケーションの0.2.xは、i7コアで数万の同時クライアントに簡単にサービスを提供できました。

WebSocket ++アーキテクチャの目的は、十分なリソースがあれば、任意の接続数に拡張することです。WebSocket ++を10k接続を超えて拡張するアプリケーションで作業している場合は、詳細と、発見したボトルネックへの対処に関心があります。

于 2013-03-17T18:22:44.660 に答える