In part 1 I discussed the setup of my load testing environment and tests. In part 2 I want to focus on the tests runs and what configuration I had to make to get them to work.
Bottlenecks oh Bottlenecks, wherefore art thou Bottlenecks
Right out of the gate I ran into trouble. My tests showed a bottleneck at 4 requests per second. The CPU was running @ 25 - 35% no matter what user load VSTS used (remember I was using goal based testing that would keep loading users until the goal was met). I tried several different tests and they all had the same result. So I knew there was a bottleneck somewhere.
I started by looking at the network. Specifically I focused on the virtual's network adaptor. I was worried that there was some sort of VMWare configuration problem. To test the network I used a file copy test (I uploaded and downloaded a large file to the web server). The test showed that the network was working just fine.
Then it hit me, the web server was configured to only support Integrated Windows authentication (NTLM). So I configured SharePoint (and IIS) to support Anonymous authentication. Bam, the bottleneck was gone.
Size Matters
So I ran my first set of tests. Unfortunately I noted a fairly significant difference between the out of the box Article page and our custom page.
Next I used the SharePoint Test Data Population Tool to create a site collection that contained 22,000 sites and about 50,000 pages.
Then I ran the tests again with some very surprising results. The out of the box Article page when from 114 requests per second to 56 requests per second. That's right we recorded an almost 100% decrease in performance just due to the size of the site collection.
Our custom page's did not experience the same percentage of slow down (actually their performance improved, but that was due to improvements we made to the code).
Summing Up
Performance testing SharePoint is a tedious but necessary task. Here are my lessons learned from the exercise.
1. Plan, Plan, Plan
Establish the test goals
Determine which tests you need to run
Determine which tools you will use
Determine the setup/configuration of your SharePoint and Load test environments.
2. Dry run the tests (leave plenty of time to work through issues)
3. Don't test with an empty site collection
No comments:
Post a Comment