我有 .Net 服务,它通过 TCP 协议(protocol)监听单个端口。客户端连接然后传输数据一段时间(从几分钟到几个小时)。
Windows 2008 服务器有连接数限制吗?我没有打任何东西,因为现在有多达 50 个用户。计划有几千个用户,所以我想知道将来会不会有问题。
编辑:
正如 Cloud 回答的那样,Windows Server 2008 的某些版本似乎有一些限制。这些限制有任何引用吗?我试过谷歌,但它返回有关限制半绑定(bind) tcp 连接的文章。
最佳答案
有多少用户?
我过去在 Windows 2003 Server 上运行过一些 TCP/IP 客户端/服务器连接测试,并在相当低规范的 VM 上管理了超过 70,000 个连接。 (有关详细信息,请参见此处:http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html)。如果 Windows 2008 Server 仅限于低于 2003 Server,我会感到非常惊讶,恕我直言,Cloud 链接到的帖子太模糊,没有多大用处。这种问题经常出现,我在博客上写了为什么我真的不认为这是你应该真正担心的事情:http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html .
我个人会测试一下看看。即使您打算使用的 Windows 2008 Server 版本没有固有限制,但仍会存在基于内存、处理器速度和服务器设计的实际限制。
如果您想运行一些“通用”测试,您可以使用我的多客户端连接测试和相关的回显服务器。详情在这里:http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html在这里:http://www.lenholgate.com/blog/2005/11/simple-echo-servers.html .这些是我用来运行我自己的服务器框架测试的内容,这些内容使我能够在具有 760MB 内存的 Windows 2003 Server VM 上创建 70,000 个事件连接。
编辑以从下面的评论中添加详细信息...
如果您已经考虑使用多个服务器,我会采用以下方法。
使用我链接的免费工具 向自己证明你 可以创造合理数量的 连接到目标操作系统 (注意 Windows 对 可能导致您的动态端口 客户端连接失败,搜索 对于
MAX_USER_PORT
)。在开发期间定期测试您的实际服务器 可以创建连接的客户端 实际上“做某事” 服务器。这将有助于防止 您以这样的方式构建服务器 限制其可扩展性。看这里:http://www.serverframework.com/asynchronousevents/2010/10/how-to-support-10000-or-more-concurrent-tcp-connections-part-2-perf-tests-from-day-0.html
关于.net - Windows Server 2008 上的最大 tcp/ip 连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636397/