同じポート(単一ソケット)上のサーバーと通信できる同時クライアントの最大数(異なるポート番号を使用)はいくつですか?この数に影響を与える可能性のある要因は何ですか? Linux環境でtelnetを使用してこの情報を探しています。
これは、オペレーティングシステムによって部分的に異なります。
ただし、特定のポートに制限はありません。同時接続数には制限がありますが、通常、カーネルがサポートするファイル記述子の数(2048など)によって制限されます。
TCP接続は一意であり、接続はエンドポイントのペア(ローカルおよびリモートのIPアドレスとポート)であるため、1000の接続がもう一方の端が異なるため、接続はすべて一意であるため、サーバー上の同じポート。
注意すべきもう1つの制限は、マシンは約64Kのアウトバウンド接続、または接続に対するカーネルの制限のいずれか低い方しか作成できないことです。これは、ポートが符号なしの16ビット番号(0〜65535)であり、各送信接続がこれらのポートの1つを使用するためです。
マシンに追加のIPアドレスを与えることにより、これを拡張できます。各IPアドレスは、64Kアドレスの別のアドレススペースです。
あなたが気にする以上のもの。というより。
私はそれがそれらすべてよりも多いことを保証できます。多数のソケットにはスケーラビリティの制限があり、回避できます(c10k問題の場合はGoogle)。実際には、Linuxの単一のプロセスで便利に使用される10,000を超えるソケットを持つことが可能です。サーバーごとに複数のプロセスがある場合は、それを再度増やすことができます。
専用のロードバランサーが必要に応じて複数のポートをラウンドロビンできるため、単一のポートを使用する必要はありません。
数千の数千のクライアントプロセスに対してサービスを実行している場合、おそらくそれが機能し続けることがかなり重要であるため、冗長性を確保するにはいくつかのサーバーが必要になります。したがって、さらにいくつかのサーバーを展開する際に問題は発生しません。