In today’s post, I will focus on pulling the final piece together of this 4-part series titled “ConfigMgr 2007 Distribution Points Load Testing.” Why is this topic even important? This, i hope, is rather obvious but in case it isn’t let me share why it was important for us at Microsoft and why you as a ConfigMgr customer should care as well.
The Distribution Point (DP) Site System & Role is a role that relies on the Management Point (MP) for scale. This means that clients determine where to get their content from via a policy refresh with the MP. The one thing that I do know though is that there isn’t fancy heuristics or algorithms used to tell the client which DP to use and often clients will get the same DP so a lot of important details are missed if you don’t “scale” your DPs properly. The first step in this process is to determine how many simultaneous downloads your DP can handle. Hence, this four-part series focused on how to load test your DPs though focused on the clients preferred method of download which is HTTP or HTTP/S. If the client uses SMB then these posts don’t apply.
In Part I, we focused on making sure that our ConfigMgr 2007 Native Mode friends aren’t left behind with the sharing of some of our source code ironically called CertPicker. For Part II, I outlined how to effectively get certificates created by a Microsoft Certification Authority (CA) that are usable by CertPicker and ConfigMgr. Part III focused on creating the Web tests necessary to effectively “emulate” clients who pull content from the DPs.
Scenarios for Testing DPs
As mentioned in Part III, it is important to make sure that you create the right mix of tests via Web tests. We spread this out via Web tests that would equal a single package payload and created them to match various “package sizes.” For example, we created a Web test for the anti-virus package we delivered as well as we created a Web test for the Office 2007 package. This was a 100 Mb package versus a 1 Gb+ package and each were different Web tests.
After doing this, we step through testing the following two scenarios:
|Burst Support||This test focused solely on if n# of clients all requested a package at the exact same time.|
|Rolling Support||This test focused on the stair approach where a couple of clients would request a payload and then we would have, 3 minutes later have 5 more clients, etc. This is a more realistic “longhaul” load test that mimics production though burst support isn’t something we didn’t want to miss either.|
Building Load Tests using Visual Studio for DP Load Testing
To build a Load test, do the following:
- Open Visual Studio Team System
- In the context menu, select Test, New Test
- In the Add New Test dialog, select Load
- Enter a new Name for the Project (or add to the existing project if you like)
- In the New Load Test Wizard, enter the scenario you are testing by name (like Burst) and click Next NOTE: For Think Time profile, select Do not use think times. This is because the CCM client doesn’t think like a human would – it just goes as fast as it possibly can until it hits an error.
- For the scenario you are testing, select the load (e.g. clients) against the DP. You would obviously select constant load for Burst testing while using step for the rolling tests.
- The next step is test model and this is completely based on the test you plan to perform. Select virtual users.
- In the Add Tests, click Add and then select your tests. The Web tests should be in the same project as the Load Test to be recognized by Visual Studio
- For the browser mix, keep the defaults since it doesn’t matter as CCM client uses the client itself and uses the default user-agent to make requests. Thus, it doesn’t matter what you select here but feel free to take whatever mix you like <g>
- The network type is really, really important if you have DPs who are behind slow links or “slower” links than LAN. This selection will vary by environment but knowing your hierarchy here will serve you well
- If you like, you can have VSTS monitor your DP, the controller machine (the one executing the tests) or clients. This is added in the Counter sets wizard.
- The final settings, Run settings, indicates how long to run the test and whether to warm up prior to testing. I will talk more about this in later posts but for now we will keep it simple. Say 10 minutes…
That’s it! You now have a load test that will run your Web tests with various degrees of difference depending on your selections through this wizard.
Putting it all Together
Wow, what a road we just went down…but wasn’t it so much fun! In this 4-part series I hopefully helped you understand how to use Microsoft technology to build certificates, dynamically generate certificates at run-time (CertPicker), and how to build Web & Load tests to effectively learn the performance characteristics of your Configuration Manager 2007 Distribution Points.
In future posts, I will take some time to dig into results that these tests will give you and focus a little attention on deciphering if you have problems (e.g. bottlenecks) and how to tweak DPs to perform better.