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 an开发者_JAVA技巧d 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>
There always is only 1 singleton Object. Its handling all request one by one. After about 100 requests you'll probably notice some slowdown because some buffers are filling up.
精彩评论