tags:

views:

17

answers:

0

Scalability issue with singleton object

Hi All,

We have a singleton object hosted in windows service. It works fine untill the number of simultaneous client requests exceeds some magical number around 100. After this all new calls seems to be queued and processed one by one only when one of current connections is released.

We would very much appreciate if someone could tell us how to get rid of this limitation.

At the time when it happens the number of threads (according to Task Manager) is about 120 so thread pooling shouldn’t be an issue (there are 2 CPUs which makes up to 512 threads, if I correctly understand). There is also plenty of free memory (the process allocates about 200-300 MB and there is still more than 1GB of free memory)

We use .Net framework 3.5

Below is fragment of 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>