【问题标题】:Max of Indy clients?最大的印地客户?
【发布时间】:2013-03-15 11:34:06
【问题描述】:

有多少客户端可以同时连接到TidTCPServer?我用的是 Indy10 , DelphiXE2 和目标操作系统是 windows server 2003。

delphi 有没有更好的选择来代替 Indy?

【问题讨论】:

    标签: delphi delphi-xe2 indy10


    【解决方案1】:

    默认情况下,MaxConnections 设置为 0,因此 Indy 服务器在接受另一个连接之前不会检查活动线程的数量,但这主要取决于客户端在服务器上执行的操作。例如,如果您的服务器接受客户端连接,然后在该客户端线程上下文中计算 pie 到万亿位数,那么与将工作移交给另一个进程相比,您将获得正确处理的连接数显着减少。基本上,您的结果将直接根据执行的任务而有所不同。

    对于一个通用的答案...如果您覆盖分配给每个线程的默认堆栈大小,您可以在 32 位服务器应用程序中拥有多达几千个连接,但可能不会更多。请参阅:What's the maximum number of threads in Windows Server 2003?http://www.deltics.co.nz/blog/?p=1330

    还要检查 ListenQueue 属性,默认设置为 15。显然操作系统可以自行进一步增加...我不知道当前的 Windows Server 默认监听队列,但我通常会提高默认数量。

    底线 - 达到 1000 个活动线程/连接,您很可能迟早会碰壁。

    【讨论】:

      【解决方案2】:

      操作系统可以使用可用资源处理多少客户端。请记住,每个连接的客户端都使用自己的线程,因此您必须使用进程的默认线程大小。

      【讨论】:

        猜你喜欢
        • 2010-11-07
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 2019-03-14
        • 2018-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多