Question

I've set up a solution that creates rapid fire PDF reports. Currently it seems I can't get Reporting Services to use all the resources it has available to it. The system doesn't appear to be IO bound, CPU bound, or memory bound. Any suggestions on trying to figure out why it's running so?

The application isn't network IO bound, and it is multi-threaded to 2 times the number of processors.

Was it helpful?

Solution

SQL Server Reporting Services limits the number of reports run to 2 simultaneous ad-hoc reports and 2 simultaneous web reports. This is a hard limit imposed by the server.

OTHER TIPS

Robin Day is probably right, however if you are using a processor that supports hyper threading you may get a performance benefit by turning this off in the BIOS. You can try an a A/B performance test.

You could also check the SQL instance (when you say reporting service you mean SSRS right?) has not a got processor affinity set.

Is this a case of not using a multi threaded approach? Is the machine using 100% of one core of a processor and that's the bottleneck?

EDIT: Sorry for stating the obvious, was just an idea before you mentioned that it was already multi threaded. I'm afraid I can't offer any more suggestions.

Any suggestions on trying to figure out why it's running so?

a) There's an API to restrict a whole process to one CPU: test that using GetProcessAffinityMask.

b) 'Thread state' and 'Thread wait reason' are two of the performance counters ... maybe you can read this to see why threads, we you think ought to be running, aren't.

All the threads of your application are fighting for a single lock. Use a profiler to see if there is a congestion somewhere.

If you have four cores, that would explain why you see 25% overall CPU usage.

Maybe the server can't deliver more data over the network (so it's network IO bound)?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top