I have an asp.net page that is trying to access a SSRS 2008 ReportServer through the ReportViewer control. The reports are accessed using a proxy account that is setup with ‘Browser’ role on the server. With a regular report access scenario this setup works fine. but whenever we try to load test this page using 100 virtual users, we start seeing “unable to connect to remote server” errors. the load test is setup to start with 10 users and rampup 10 users after every 30 seconds. the test is setup to run for 30 mins.
The stack trace is as below:
System.Net.WebResponse GetWebResponse(System.Net.WebRequest)
System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest
request) at
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest
request) at
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetWebResponse(WebRequest
request) at
Microsoft.Reporting.WebForms.ServerReportSoapProxy.GetWebResponse(WebRequest
request) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at
Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.LoadReport(String
Report, String HistoryID) at
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String
Report, String HistoryID) at
Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo() at
Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1
parameters)
Is there something in the report server configuration that needs to be altered to support one such load profile?
I am thinking, 100 users is not a lot for the box to handle, given that the box has QuadCore Xeon 3.Ghz and 10GB RAM.
Some questions;
What is the observed load on the report server; depending on the report you might overload it with a low number of users if returning thousands on thousands of rows of data and manipulating them. Depending on how you are loading up your vu’s you might be pumping too much data / requests in too soon.
Is there an adaptive firewall/ windows firewall running on one of the machines ? Some firewalls would see this load test as hostile behavior and block it part way into the test.
Have you ruled out an AD issue ? If not is the sqlserver setup into AD correctly (trusted for delegation and has a registered SPN) and is/are the AD server(s) performant whilst running the test; i have been involved in a load test at one site which used the normal domain servers; whilst the test ran we crashed users out of apps and servers all over the network not involved in the test as we overloaded the domain controllers through millions of requests through badly setup servers.