Hi,
I'm currently using NHibernate 2.0 in an enterprise service oriented application. We have about 300-450 concurrent users on our front-end website and ran into some performance issues.
After carefully testing the WCF services on our backend using the load test functionality of Visual Studio 2008 SP1, we discovered some peculiar things. It appeared that the performance of our web services (WCF wsHttpBinding) under a load of 1000 users improved when we disabled the 2nd level SysCache. I was quite surprised and haven't really investigated this in detail, but at first glance, it seems that our Oracle database can more quickly handle 1000 concurrent requests, than SysCache can handle.
I know that using some common sense this cannot be really possible, but I wonder how well SysCache can deal with many concurrent ISessions (we create a new ISession for each WCF request). Is it possible that some unnecessary locking occurs in the 2nd level cache? Our WCF service is configured to handle up to 2000 concurrent calls. And what is the fastest cache that can potentially support a web farm (we currently have one backend server)?
|