Microsoft® Exchange Load Generator 2013

Microsoft Corporation

Published: October 2013

This document provides information about working with the Exchange Load Generator tool. This tool helps administrators perform benchmarking, pre-deployment validation, and stress testing tasks that introduce various types of workloads into a test (non-production) Exchange messaging system.

Comments? Send feedback to

1

Contents

Microsoft® Exchange Load Generator

Microsoft Exchange Load Generator

System Requirements for Exchange Load Generator

When to Use Exchange Load Generator

Installing Exchange Load Generator on a Client Computer

Creating and Running the Exchange Load Generator Test

How to Start Exchange Load Generator

How to Set Up the Exchange Load Generator Test Topology

How to Configure the Test Properties

Customizing the Exchange Load Generator Test

Specifying Threshold Detection during Simulation

How to Enable Remote Control

How to Enable Stress Mode

How to Enable RPC over HTTP

How to Initialize the Exchange Load Generator Test

How to Run the Exchange Load Generator Test

How to Stop the Simulation Process

How to Repeat the Test

Running Exchange Load Generator as a Command-Line Program

Running Exchange Load Generator Tasks

Using System Monitor and Exchange Load Generator Data

How to Consolidate System Monitor Data

Operational Recommendations for Using Exchange Load Generator

Specific Features and Behaviors of Exchange Load Generator

Public Folders

Mail Flow and Recipients

Task Rate, Concurrency Settings, and Stress Mode

Dynamic Mail Generator

Performance Counters Reference

Scripted Load Modules in the Exchange Load Generator Framework

Exchange Load Generator Configuration XML

Base Script Verbs

The POP3 Module

The SMTP Module

The IMAP4 Module

The Outlook Web Access Module

Frequently Asked Questions about Exchange Load Generator

Copyright

Microsoft Exchange Load Generator

Microsoft® Exchange Load Generator is a pre-deployment validation, and stress testing tool that introduces various types of workloads into a test (non-production) Exchange messaging system.

Exchange Load Generator lets you simulate the delivery of multiple MAPI client messaging requests to an Exchange server. To simulate the delivery of these messaging requests, you run Exchange Load Generator tests on client computers. These tests send multiple messaging requests to the Exchange server, which causes a mail load.

After the tests are complete, you can use the results to help do the following:

Verify the overall deployment plan

Identify bottlenecks on the server

Validate Exchange settings and server configurations

Exchange Load Generator tests the effect of client load on a server.

There are general tasks such as logoff, logon, and send mail that are common to most protocols. Additionally, there are feature tasks that are available only in certain protocols.

System Requirements for Exchange Load Generator

To use Microsoft® Exchange Load Generator, you must meet the minimum and recommended system requirements outlined in the following table.

Component / Minimum / Recommended
Processor / Any of the following processors:
X64 architecture-based processor / Any of the following processors:
x64 architecture-based processor running at 2.2 GHz or faster
Operating system / Microsoft Windows Server 2008 R2
Microsoft Windows Server 2012
Windows 7
Windows 8 / Microsoft Windows Server 2008 R2
Memory / 512 megabytes (MB) of RAM / 2 gigabytes (GB) of RAM
Available hard-disk drive / 300 MB / 300 MB
Display / SVGA (800 x 600) or higher resolution monitor / SVGA (800 x 600) or higher resolution monitor
.NET Framework / Microsoft .NET Framework 4.5 Redistributable Package / Microsoft .NET Framework 4.5 Redistributable Package
Running against Exchange Server / Exchange Server 2013 / Exchange Server 2013

When to Use Exchange Load Generator

Microsoft® Exchange Load Generator simulates the server workload that is generated by user interaction with various message client software. It is a useful tool for server administrators or messaging deployment engineers who are sizing servers and validating a deployment plan. Specifically, Exchange Load Generator helps you determine whether each of your servers can handle the load that they are intended to carry. Another use for Exchange Load Generator is to help validate the overall solution. Because Exchange Load Generator simulates client requests, the effect of server-side solutions such as archiving, antivirus, or anti-spam products can also be validated.

Important

Exchange Load Generator should be used only in test environments that have no connection to the production environment. This tool should not be used in a production environment, an environment that is mission critical, or one that contains important information of any kind anywhere in the network.

Exchange Load Generator uses many simulated user mailboxes to create the server workload. Because mailboxes must be part of a domain user’s account, the Exchange Load Generator tool therefore creates many domain user accounts to support these user mailboxes. By design, Exchange Load Generator requires that the password associated with these domain accounts be the same. Because this most likely does not comply with your organization's security requirements, to lessen any risk this could present, we recommend that this tool be used only on isolated test networks that do not have connectivity to your production network.

Because load simulation works by using system resources, Exchange Load Generator is unsuitable for use on production networks because it could interfere with production operations by competing for those resources.

Additionally, Exchange Load Generator does not account for all factors that are required to size servers completely. The following factors are not simulated by Exchange Load Generator and can affect server capacity planning:

  • Loadgen will not replicate the correct IOPs per user. For IOP testing, we recommend you use Microsoft Exchange Server Jetstress.

Exchange Load Generator also does not provide a complete picture of user experience, and its results should not be interpreted in that manner.

Installing Exchange Load Generator on a Client Computer

To simulate many clients sending messaging requests to an Exchange server, you must install and configure Exchange Load Generator on one or more client computers. This topic provides the installation procedures for each client computer. The following are some important considerations for installation.

You can install Exchange Load Generator on an ExchangeServer but the actual simulation should be run from separate client computers.

If you do not log on as the enterprise administrator (for example if you log on as the local administrator), Exchange Load Generator cannot create users in Active Directory. Exchange Load Generator must have sufficient rights to create users, organizational units, distribution groups, and query-based distribution groups. Exchange Load Generator must be running under an account that is a member of the Enterprise Administrators group. To view the group membership of a user, double-click the user account name in the Active Directory Users and Computers snap-in, and then click Member Of. If you are logged on as a user who has correct permissions, you can add a user to a security group. To add a user to a security group, double-click the group in the Active Directory Users and Computers snap-in, click Members, and then click Add.

We recommend that you join the client computer to the domain where the Exchange servers are located. Exchange Load Generator does not require that the computer experience be domain-joined. However, the user experience will be enhanced if you follow this step.

Follow these steps to install Exchange Load Generator on the client computer.

To install Exchange Load Generator on the client computer

1.Log on to the client computer by using domain credentials. As mentioned, we recommend that you join the client computer to the domain in which the Exchange servers are located.
2.Download and extract the Exchange Load Generator files and installer (Loadgen.msi).
3.Double-click Loadgen.msi. The Microsoft Exchange Load Generator Setup Wizard opens and steps you through the installation. The installer file creates a new folder on the system drive named Exchange Load Generator, and copies the Exchange Load Generator files to that new directory. You can either accept the default settings in the installation or customize the installation location for your requirements.

Creating and Running the Exchange Load Generator Test

First, you will need to configure the storage groups and mailbox stores on the Exchange server. Additionally, since MAPI connectivity to Exchange 2013 occurs via RPC/HTTP (Outlook Anywhere) it is critical to properly configure the CAS servers that LoadGen will connect to, as well as any network infrastructure such as load balancers that may exist between LoadGen clients and the CAS servers. Once server configuration is completed you can create and run the Exchange Load Generator tests. This topic highlights the steps that are required to create and run an Exchange Load Generator test on a client computer. Also included is a table that indicates which method is used to do the various steps.

Each of these steps is described in detail in accompanying topics.

  1. How to Configure Exchange RPC/HTTP. Proper configuration of RPC/HTTP connections is critical as MAPI is used to initialize mailboxes, as well as for all Outlook task simulation.
  2. How to Start Exchange Load Generator. Start the simulation on the Start menu (Programs), from the new graphical user interface, or from a command-line program.
  3. How to Set Up the Exchange Load Generator Test Topology. To set up the test topology, specify the number of users you want to simulate for each mailbox store. Also, create the distribution groups in Active Directory on the Exchange server. You must follow this step on the first client only.
  4. How to Configure the Test Properties. To configure the test properties, specify the length of time and the range of simulated users who will run on the client computer.
  5. Customizing the Exchange Load Generator Test. Optional. To customize the test, customize the default behaviors of the test tasks, logon processes, and initialization.
  6. How to Enable Remote Control. Optional. If you use more than one client for the Exchange Load Generator test, enable Remote Control through the graphicaluser interface so that you can manage all the clients from one computer. You can enable or disable load balancing as well during the remote control step.
  7. How to Initialize the Exchange Load Generator Test. If you use more than one client for the Exchange Load Generator test and you have enabled Remote Control, you must do this step from the client that controls the other clients. The initialization process populates the users with content that is required for running the tests. Only the Outlook client types can be used to initialize users.
  8. How to Run the Exchange Load Generator Test. You must manually start the test on each client participating in the test or from the Master Loadgen machine.
  9. How to Repeat the Test. Optional. You may want to run the same Exchange Load Generator test to validate the results of your initial test. You may also want to run a test using slightly different client numbers and characteristics.

Methods used to do Tasks

Steps and sub steps / Method(s) used
Starting the simulation
How to Start Exchange Load Generator / Start menu, graphicaluser interface, or command-line program
Setting up the topology, which involves specifying the number of users for each mailbox store
How to Set Up the Exchange Load Generator Test Topology / Graphical user interface
Configuring the test properties, which involves generating and editing a configuration file
Running Exchange Load Generator as a Command-Line Program / Command-line program to create file. Edit the configuration file.
Customizing the test by task
Customizing the Exchange Load Generator Test / Edit the configuration file parameters
Common task: Customizing logon and logoff behavior of users
Customizing the Exchange Load Generator Test / Edit the configuration file
Common task: Enabling stress mode
Customizing the Exchange Load Generator Test / Edit the configuration file
Common task: Customizing the initialization of the test
Customizing the Exchange Load Generator Test / Edit the configuration file
Enabling remote control
How to Enable Remote Control / Edit the configuration file. Graphical user interface.
Setting up the test topology
How to Set Up the Exchange Load Generator Test Topology / Graphical user interface
Verify that users were created in Active Directory
How to Set Up the Exchange Load Generator Test Topology / Active Directory Users and Computers
Initializing the test
How to Initialize the Exchange Load Generator Test / Edit the configuration file
Monitoring the progress of the initialization
Performance Counters Reference / Run Performance Monitor (Perfmon)
Initializing the mailboxes
Customizing the Exchange Load Generator Test / Edit the configuration file
Initializing public folders
Customizing the Exchange Load Generator Test / Edit the configuration file
Running the test
How to Run the Exchange Load Generator Test / Command-line program. Graphical user interface.
Stopping the simulation test
How to Stop the Simulation Process / Command-line program. Graphical user interface
Repeating the test
How to Repeat the Test / Control Panel > Administrative Tools. Active Directory Users and Computers.
Deleting database and log files
How to Repeat the Test / Control Panel > Administrative Tools
Removing users from Active Directory
How to Repeat the Test / Active Directory Users and Computers

How to Configure Exchange RPC/HTTP

Prior to using Exchange Load Generator in a test topology, you must ensure that RPC/HTTP (Outlook Anywhere) connectivity is configured properly. This will typically involve configuring a namespace for Outlook Anywhere connectivity which is consistent across the Client Access Server (CAS) role machines, selecting an authentication method for Outlook Anywhere, installing a certificate that is associated with the namespace, configuring load balancing across the CAS servers, and configuring DNS or the local “hosts” file to map the configured namespace to the load balanced IP address.

Note:

When an Outlook Anywhere external namespace is configured in the test topology, Exchange Load Generator will detect that value and use it in the ClientAccessServer list. If Exchange Load Generator is unable to obtain information from the test topology during creation of the initial configuration (this can occur if the Exchange Load Generator clients are not domain-joined), the namespace must be manually added to the ClientAccessServer list.

Note:

The following steps which configure a shared external namespace can be skipped if there is only one Exchange 2013 CAS server (or multi-role server) in the test topology, as long as the authentication method has been configured to NTLM on the server (or both the server and Exchange Load Generator have been configured to use Basic authentication), and the self-signed SSL certificate on the CAS server is fully trusted on all Exchange Load Generator client machines.

To configure an external Outlook Anywhere namespace

  1. Connect to the Exchange Management Shell on one of the Exchange 2013 servers in the test topology.
  2. Utilize the following PowerShell command to configure an external namespace on all CAS servers, as well as select the NTLM authentication method (replace “mail.contoso.com” with the correct external namespace for your test deployment).
Get-OutlookAnywhere |Set-OutlookAnywhere -ExternalHostname mail.contoso.com -DefaultAuthenticationMethod NTLM -ExternalClientsRequireSsl $true
Note:
If the Basic authentication method is used, you must manually adjust the RpcHttpAuthenticationType parameter (set to “Basic”) in the Exchange Load Generator configuration file. We recommend using NTLM to simplify the test configuration process.
Note:
The new settings will not take effect immediately. We recommend either restarting your Exchange 2013 servers or waiting at least 30 minutes after making these changes before performing any validation steps.

To install a certificate on CAS servers

  1. Find a SSL certificate provider such as the one you intend to use for your production deployment, or deploy Active Directory Certificate Services on one of the servers in the test topology.
  2. See the Digital Certificates and SSL section of the TechNet Library for details on how to request and apply a certificate with Exchange 2013.
  3. Once the SSL certificate has been deployed on all CAS servers, ensure that all Exchange Load Generator client machines fully trust the certificate authority (CA) which issued the certificate. If the certificate was obtained from a public CA it is likely that the CA will already be trusted. Otherwise, obtain the CA certificate and import it into the “Trusted Root Certification Authorities” portion of the Local Computer certificate store.

To configure name resolution on Exchange Load Generator client machines via the hosts file