0

サーバーでソケットを開いたままにしておくことに関連するオーバーヘッドはどれくらいですか?

Facebook のように何百万もの同時接続があるとしましょう。HTTP リクエストと比較して、ソケットはオーバーヘッドを追加しすぎますか? ソケットを使用するとネットワークのオーバーヘッドが大幅に削減されることはわかっていますが (ヘッダーが原因で)、ソケットの方が適切でしょうか? クライアントをリアルタイムで更新せずに、(数秒ごとまたはクライアントが要求するたびに) 情報のバッチをクライアントに送信する場合、スケーラビリティ、パフォーマンス、およびサーバーの観点から、これらの何百万ものユーザーにサービスを提供するためのより良いオプションです。サイドオーバーヘッド?(ソケットまたは http を使用して、より多くの/より高速にスケーリングする必要がありますか?)

4

1 に答える 1

0

正しい質問は、「サーバーごとにいくつのソケットを開いておくことができるか」です。

OSに依存します。

Linux :
に設定された値net.ipv4.netfilter.ip_conntrack_max

https://serverfault.com/questions/10852/what-limits-the-maximum-number-of-connections-on-a-linux-server


:

かなり低スペックの VM で 70,000 接続

Windows Server 2008 での最大 tcp/ip 接続


もちろん、アプリケーションがどれだけうまく書かれているか、ハードウェアの仕様などに依存します。

したがって、開いているソケットの量に基づいてアプリケーションを設計するべきではありません。ソケットの制限に達する前に、アプリケーションがおそらくクラッシュして燃えてしまうからです。

于 2014-04-20T21:32:26.067 に答える