SharePoint PerformanceTester - Identify your bottleneck / bottlenecks


today i want to publish my next tool “PerformanceTester”, which I used in the last time to troubleshoot performance issues. The main problem i had is always: performance issue happens randomly. And i try to get in touch with customers in the time frame when the bad performance issue happens. But the world would be so easy for troubleshooting when you can switch on the performance situation like you want. That fact i want to change with using PerformanceTester. It will measure the performance and create incoming Web Traffic to your SharePoint Server like a user and you can start troubleshooting.

- .NET 2.0

- Supported authentication: Windows Integriert (NTML,Kerberos)
- (it use the current Windows-LogOn-Credentials)

Syntax: performanceTester –url http://myUrl –i 20 –d {0|1} –out {0|1}
this example will create 20 http-Request to url http://myurl.

During the last month I could identify different performance issue and basic behavior: incoming traffic to Web Servers is never constant and requested URLs always change. The world is so hard that each URL can have dependencies with other SharePoint Lists, other Databases and the size of their result set. So it makes a different to rendered page content based on the number of Items to render.

With using PerformanceTester you can request many similar URLs to check each single site on their own performance behavior. Unfortunately I've seen custom code like webparts, UserControls etc. in a production environment that has never seen a performance baseline & performance stress test. It’s so easy to write code and deploy them into a production environment. But the question is: Is the IT administrator aware of the code quality? Unfortunately no or maybe :-(.

The IT-Pro or IT administrator didn’t have too much coding knowledge like the developer. But the IT-Pro has a good knowledge about measure processes for high CPU, high memory, memory leaks, IO traffice, …
The developer doesn’t matter topics like memory usage, time in CPU etc, the developer get the task to implement a custom functionality. So it can happen that the developer is not aware about the fact that calling a specific method can be a big deal for CPU or calling large memory blocks. Such an issue i already post here: Scalability for SharePoint CAML Query.

To solve this dilemma it requires an SharePoint architect to bring the view of IT-Pro and Developer together and optimize the information design and code.

If one instance of performanceTester did not create enough traffic then you can create a 2nd, 3th, … instance. In most cases it’s enough to have not more than 5-10 instances to create a high CPU, high memory situations on web server with bad code.

Please use this tool only in non-business hours for testing. In my next post i will go in deep to troubleshooting performance issues, based on performanceTester.