Archive for October, 2009

Microsoft Visual Studio Team Suite Load Test Part 2 – Optimizing your load tests

October 23, 2009 1 comment

Its been quite a while since my first post of VSTS and it seems Mercury Loadrunner has caught up in terms of functionality.

Anyway here’s my 2nd post in this series which tells you how to improve performance when doing a load test.

Things to note…

Since the load test agent is licensed based on a per processor model, it is generally advisable to get a processor with as many cores as possible, and also pump up the ram for the machine, but as the agent is a 32bit application, it will not be able to use > 4GB of ram and does not work so well in a x64 environment. Recommended installation environment is still either Windows XP or Windows 2003.

The good news is in VSTS 2010, the agent itself is x64 so all these issues should magically disappear 🙂

ok back to the main topic, how to optimize your load tests

  1. stick to a x86 os with a maximum of 4GB of ram for load test agents
  2. Turn on server GC

    To enable your application to use Server GC, you need to modify either the VSTestHost.exe.config or the QTAgent.exe.config. If you are not using a Controller and Agent setup, then you need to modify the VSTesthost.exe.config. If you are using a controller and agent, then modify the QTAgent.exe.config for each agent machine.

    Open the correct file. The locations are

    VSTestHost.exe.config – C:\Program Files\Microsoft Visual Studio 8\Common7\IDE

    QTAgent.exe.config – C:\Program Files\Microsoft Visual Studio 2005 Team Test Load Agent\LoadTest

    To enable gcserver you need to add the following line in the runtime section:

    <gcServer enabled=”true” />

    It should look something like:

    <?xml version =”1.0″?>
    <gcServer enabled=”true” />
    <assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
    <probing privatePath=”PrivateAssemblies;PublicAssemblies”/>


  3. Turn on agent connection pooling (Run Settings -> MySettingsName ->Properties -> WebTest Connection Pool
    By default VSTS emulates a client open and closing TCP connections to the server, however these opening and closing of connections take up resources. If your chief aim is to test the server, and especially if your server is sitting behind a load balancer with TCP offloading, turn this off
  4. Create a declarative WebTest program to easily change parameters inside your webtest
  5. Specify ResponseBodyCaptureLimit – By indicating how much of the response you want to capture for parsing, you can run away from those dreaded agent out of memory errors, this is especially so when you are doing e.g a file download test
  6. Monitor your servers, but not so frequent: You don’t wish to overload your servers just because you want to monitor their performance right
Categories: Performance, Visual Studio