我有.Net服务,通过TCP协议侦听单个端口。客户端连接然后传输数据一段时间(从几分钟到几个小时)。
Windows 2008服务器上的连接数是否有限制?我没有打任何,因为现在有多达50个用户。计划是有数千名用户,所以我想知道将来是否会出现问题。
修改
正如Cloud回答的那样,某些版本的Windows Server 2008似乎存在一些限制。是否有关于这些限制的参考?我试过谷歌,但它返回了关于半绑定tcp连接限制的文章。
答案 0 :(得分:19)
有多少用户?
我以前在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版本没有固有限制,仍然会有基于内存,处理器速度和服务器设计的实际限制。
如果要运行某些“通用”测试,可以使用我的多客户端连接测试和关联的echo服务器。这里有详细说明: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
答案 1 :(得分:3)
half-open connections的数量有限制,但不支持有效连接。虽然它似乎取决于Windows 2008服务器的类型,但至少根据this MSFT employee:
这取决于版本,Web和 基础版有联系 限制标准,企业和 数据中心没有。