Load-Testing SharePoint servers is critical activity, yet time & again I come across clients who aren’t doing it. When I investigate why not, almost always due a single interesting reason – no one could figure out how to run the load testing from (say) a laptop, yet still monitor from that laptop the stats on the remote SharePoint servers…
This sounds like it should be completely straightforward, doesn’t it? Yet I’m not joking when I say that Microsoft blundered on this point: they made an incredibly powerful & intuitive Visual Studio-based load-testing environment like VS2008 Team Edition for Software Testers (“TEST” – get it?)… then made it so annoyingly UNintuitive and UNdocumented as to how to get stats on remote servers (you know, the very servers you’re LOAD TESTING), that damn-near every client I ever had (and I’ve work with lots of $1B to $10B companies) actually GAVE UP, and resorted to using actual people to play at load testing, or opted to watch various performance logs and analyze after-it-already-happened performance issues.
Well, as it turns out, IF you visit enough forums, IF you read enough articles which vaguely refer to how to access stats on remote servers, IF you finally come across an article which actually mentions what appears to be a single obscure KB article… then you learn the ONE TINY LITTLE TRICK which is necessary, and *voila* you’ll suddenly be seeing your remote server stats show up in a Metrics window in your VS2008 load tests.
So what is this “trick”?
Simple & Straightforward, once it’s told to you: The user account which is running the load tests (the one with which you logged into the laptop) needs to be in 1 of 2 possible built-in groups on each of the remote servers you wish to monitor:
1. The remote server’s “Admins” group; or
2. The remote server’s “Performance Monitoring Users” group.
That’s it. Now that someone has TOLD you that, you’re all saying “DUH… of COURSE. That makes perfect SENSE”. But I swear to you, when you’re in VS2008TEST, and you’re running a load test, and you THINK you’ve correctly added remote server Web01 and Web02 and SQL01 to your load test, and yet the stupid “System Under Test” metrics window just sits there and displays NOTHING AT ALL… well, it’s NOT obvious one damn bit.
Good thing I’m not bitter…
So let’s actually look at some screen shots of what needs to be done…
Step 1: CREATE a load test containing web tests which browse to URLs on your remote server. In my case The Remote Server is named “LAB-APP-VMOSS”. As this is not a primer/tutorial on how to use VS2008TEST, I will assume you know how to do this well-documented step;
Step 2: ADD your remote server to the list of “counters”. Here’s what my VS2008 load test solution (of 1 load test project of 1 load test of 1 web test) looks like before adding the remote server to my list of computers-with-counters:
HOVER over Run Settings and RIGHT-CLICK >
Here’s what the Counter Set Dialog Box looks like:
Next – CLICK “Add Computer”, and enter each of your remote servers. In my case, the remote server I want to monitor is LAB-APP-VMOSS – the very server I’m going to be pounding with my load test.
Lastly select from the semi-intuitive group the actual counters (metrics) you think you’d want to watch. For me , in SharePoint, I’ll go with ASP.NET counters and IIS counters. This typically includes %CPU Utilization and %Memory Utilization, which are most often the key indicators if your remote server is suffering under a particular load:
If you check out your VS2008 solution, you’ll now see the additional remote servers added to your Run Setting’s list of counters:
Once the remote server has been included in the Counter Set for the load test, you high-tail it and RDC into that remote server, and make sure the domain account used when running the VS2008 to launch the load test is in the “Performance Monitoring Users” group:
Once that’s done, return to VS2008, and simply run your load test as usual…
… except NOW you’ll see your much-desired remote server stats show up automatically under a metrics group called (aptly) “System Under Test”:
Cool. Great. Excellent. ‘Bout time someone made this all understandable.