我有一个稍微不寻常的情况,需要在我的服务器上为成千上万的移动用户维护到另一台服务器的CLIENT tcp连接(基本上移动设备在能够连接时连接到我的中间层服务器,该服务器对第三方服务器进行更稳定的连接维护)。
无论如何,我使用异步套接字(包装在SslStream中)开发了我的服务器应用程序,并且现在有1000个客户端会话全天在其上运行。目前为止,我对结果感到非常满意,因为我在单核处理器上看到平均0-10%的CPU使用率,以及随着时间推移使用约60MB的RAM。
我的问题是,如何扩展这个系统,以便我可以在我的服务器上运行100,000或200,000或更多个客户端会话?再次说明,这有点不传统,因为我的服务器实际上并不像服务器那样运作,因为我担心的是出站连接,而不是入站连接。
我知道有一个MaxUserPort注册表设置需要更改,以超过默认值,似乎默认值为5000。但是,似乎还有另一个硬限制为65535,我对该限制的位置并不太清楚。 这是每个网络接口的限制吗? 这是全局Windows限制吗? 这是每个进程的限制吗?
如果这是每个网络接口的限制,那我可以添加多个网络接口,并将客户端会话套接字绑定到每个接口(例如:在接口1上使用65k,在接口2上使用65k等)吗?
我也不太确定是否需要设置任何套接字选项或属性来帮助提高性能。 我现在没有使用任何套接字选项。
非常感谢任何关于此主题的想法,因为在这个主题上得到清晰的建议非常困难。 谢谢!