与在服务器上保持套接字打开相关的开销是多少?
假设您有数百万个像 facebook 这样的并发连接,与 HTTP 请求相比,套接字会增加太多开销吗?我知道套接字会大量减少网络开销(因为头),但是套接字会是更好的选择吗?如果您不实时更新客户端,但仍向客户端发送批量信息(每隔几秒或客户端请求时),这是在可扩展性、性能和服务器方面为数百万用户提供服务的更好选择侧头顶?(您是否必须使用套接字或 http 进行更多/更快的扩展?)
与在服务器上保持套接字打开相关的开销是多少?
假设您有数百万个像 facebook 这样的并发连接,与 HTTP 请求相比,套接字会增加太多开销吗?我知道套接字会大量减少网络开销(因为头),但是套接字会是更好的选择吗?如果您不实时更新客户端,但仍向客户端发送批量信息(每隔几秒或客户端请求时),这是在可扩展性、性能和服务器方面为数百万用户提供服务的更好选择侧头顶?(您是否必须使用套接字或 http 进行更多/更快的扩展?)
要问的正确问题是“我可以为每台服务器打开多少个套接字”。
这取决于操作系统。
Linux:
值设置为net.ipv4.netfilter.ip_conntrack_max
窗户:
70,000 个连接在相当低规格的 VM 上
Windows Server 2008 上的最大 tcp/ip 连接数
然后它当然取决于您的应用程序编写得如何,硬件规格等。
所以我想说你不应该根据打开的套接字数量来设计你的应用程序,因为你的应用程序可能会在达到套接字限制之前崩溃和烧毁。