单例对象的可伸缩性问题(远程处理)

时间:2010-07-13 07:49:09

标签: .net-remoting

单例对象的可伸缩性问题

大家好,

我们在Windows服务中托管了一个单例对象。 它工作正常,直到同时客户端请求的数量超过100左右的一些神奇数字。 在此之后,只有在释放当前连接之一时,所有新呼叫才会被排队并逐个处理。

如果有人能告诉我们如何摆脱这种限制,我们将非常感激。

当它发生时,线程数(根据任务管理器)大约为120,因此线程池不应该是一个问题(如果我正确理解,有2个CPU,最多可构成512个线程)。 还有足够的可用内存(该进程分配大约200-300 MB,还有超过1GB的可用内存)

我们使用.Net framework 3.5

下面是app.config的片段。

    <configuration>
  <system.runtime.remoting>
    <application>
      <service>
        <wellknown type="CompanyName.Server.ServerStub, MyServer" objectUri="MyServer" mode="Singleton"/>
      </service>
      <channels>
        <channel port="3210" ref="tcp">
          <serverProviders>
            <formatter ref="binary" typeFilterLevel="Full"/>
          </serverProviders>
        </channel>
      </channels>
    </application>
  </system.runtime.remoting>
</configuration>

1 个答案:

答案 0 :(得分:0)

总是只有1个单例对象。它处理所有请求一个接一个。在大约100个请求之后,你可能会注意到一些缓慢因为某些缓冲区正在填满。