Microsoft Exchange Server Profile Analyzer

 

Topic Last Modified: 2009-09-28

The Microsoft Exchange Server Profile Analyzer tool lets administrators collect estimated statistical information from a single mailbox store or across an Exchange Server organization. You can use the collected data to perform the following operations:

  • Analyze the performance and health of a mailbox server.

  • Improve capacity planning models.

  • Improve testing methodologies and tools.

  • Improve future client and server products.

Note

The statistics that are generated by the Exchange Server Profile Analyzer are estimates only. The accuracy of the estimates may vary depending on how users manage their mailboxes.

Prerequisites and Requirements

You must be running the following items on any computer on which you want to run the Exchange Server Profile Analyzer tool.

  • The Microsoft .NET Framework Version 2.0 Redistributable Package (x86) (https://go.microsoft.com/fwlink/?linkid=66763).

  • One of the following operating systems:

    • Windows 2000 Server Service Pack 4

    • Windows XP Service Pack 2 or a later version

    • Windows Server 2003

Servers from which you want to collect statistics must be running one of the following:

  • Exchange Server 2007

  • Exchange Server 2003 Service Pack 2 or later

Required Permissions

To run correctly, the Exchange Server Profile Analyzer requires the following elevated permission:

  • Exchange View-Only Administrator

    This permission is required to obtain read-only access to Exchange configuration data in Active Directory. You can set this permission at the organization or Administrative Group level.

    Note

    The account that you use to run the Exchange Server Profile Analyzer must not be a member of the Domain Administrators group or Enterprise Administrators group. Members of these groups inherit a set of "Deny" access control entries on user mailboxes. Therefore, when Exchange Server Profile Analyzer is run by a member of either of these groups, the tool cannot extract data from user mailboxes.

Configuring Accounts on Exchange Server 2003

The following procedure describes how to configure an account to use with Exchange Server 2003 SP2. The procedure describes how to configure an account as an Exchange View-Only Administrator.

To configure an account as an Exchange View-Only Administrator

  1. Start the Exchange Management Console, right-click the Exchange organization, and then click Delegate control.

  2. In the Exchange Administration Delegation Wizard, click Next.

  3. In the Users or Groups pane, click Add.

  4. Click Browse, and then locate the user account that you want to configure.

  5. Verify that Exchange View-Only Administrator is selected in the Role list, and then click OK.

  6. Click Next, review the changes that will be made, and then click Finish.

Configuring Accounts on Exchange Server 2007

To assign a user or group the Exchange View-Only Administrator role, use the Add-ExchangeAdministrator cmdlet in the Exchange Management Shell. For more information, see the "Add-ExchangeAdministrator" topic (https://go.microsoft.com/fwlink/?LinkId=162079).

Installing the Exchange Server Profile Analyzer

To obtain the Exchange Server Profile Analyzer, see "Tools for Exchange Server 2007" on the Exchange 2007 Downloads page (https://go.microsoft.com/fwlink/?linkid=79391).

The Exchange Server Profile Analyzer Windows Installer package (EPA.msi) contains the following files:

  • EpaCmd.exe

  • This is the command-line version of the Exchange Server Profile Analyzer.

  • EpaWin.exe

    This file is the graphical user interface version of the Exchange Server Profile Analyzer.

  • EpaOWACmd.exe

    This file is the command-line tool for the Microsoft Office Outlook Web Access mailbox analyzer.

  • EpaSummarizer.exe

    This file is the summary command-line tool for the Exchange Server Profile Analyzer.

  • ExProfAn.doc

    This file is the user documentation for the tool.

After you open the installer package, run the Microsoft Exchange Server Profile Analyzer Installation Wizard.

Recommendations for Effective Tool Operation

We recommend that you run only the Exchange Server Profile Analyzer during a maintenance period. This is to help avoid affecting server performance that could increase client access latency.

The Exchange Server Profile Analyzer parses the data in user mailboxes at a rate of approximately 500 kilobytes (KB) to 1 megabyte (MB) of data per second. Therefore, you should select a small, representative group of mailboxes in an organization and collect data only from the databases on which the mailboxes are hosted.

By default, the Exchange Server Profile Analyzer collects data from only a single mailbox on each server at the same time. To collect data from multiple mailbox databases at the same time, either run multiple instances of the tool by creating multiple configuration files or change the configuration file by following the information in the "Entering Information in a Configuration File" section in this topic.

The process of collecting data from each mailbox has an effect that resembles the process of synchronizing a mailbox for a new Outlook Cached Exchange Mode user.

During the data collection process, we recommend that you monitor the mailbox servers to look for any significant increase in RPC Averaged Latency. Increased RPC Average Latency indicates a performance problem on the server. If there are multiple instances of the Exchange Server Profile Analyzer running, this situation may increase the load on the server. If the server is experiencing performance issues because of an increased RPC Averaged Latency, reduce the number of instances of the tool running to keep the server in a healthy state.

Running the Graphical User Interface

The Exchange Server Profile Analyzer tool is available as a command-line tool and as a graphical user interface (GUI) tool. To run the GUI version of the tool, double-click EpaWin in the tools package.

Running the Exchange Server Profile Analyzer Commands

The following procedure describes the general steps to follow when you run one of the commands.

To run commands for Exchange Server Profile Analyzer

  1. Click Start, click Run, type cmd, and then click OK.

  2. At the command prompt, type one of the following commands:

    • EpaCmd.exe

    • EpaOWACmd.exe

    • EpaSummarizer.exe

  3. Follow the instructions as appropriate for the command-line program that you started. These instructions appear later in this document.

  4. To stop the data collection process, press CTRL+C.

The command-line version of the Exchange Server Profile Analyzer (EpaCmd.exe) uses a configuration file as input. The following table describes the options that are available for the EpaCmd command.

Option Description

/C:

Specifies the configuration file name. By default, Exchange Server Profile Analyzer looks for the Config.xml file in the current directory.

/O:

Specifies an optional output file name in .xml or .html file format. The default output file is located at the user's application data path. For example, it is located at D:\Users\Public\Microsoft\EPA\epadataYYYY-MM-DD_HH-MM-SS.html on a Windows Server 2008-based computer or D:\Documents and Settings\All Users\Microsoft\EPA\epalogYYYY-MM-DD_HH-MM-SS.html on a Windows Server 2003-based computer.

/L:

Specifies the log file name. By default, the log file name is generated by Exchange Server Profile Analyzer. The default log file will be located at the user's application data path. For example, it is located at D:\Users\Public\Microsoft\EPA\epalogYYYY-MM-DD_HH-MM-SS.log on a Windows Server 2008-based computer or D:\Documents and Settings\All Users\Microsoft\EPA\epalogYYYY-MM-DD_HH-MM-SS.log on a Windows Server 2003-based computer.

/?

Prints the file usage and then exits the program.

Creating a Configuration File

The following sections describe the required input for a configuration file.

Required Inputs

Before you use the Exchange Server Profile Analyzer, you must determine the following:

  • The domain controller to which you want the tool to connect.   The tool must connect to a domain controller to obtain Exchange topology information. This information is required only when you have multiple Active Directory forests. The destination domain controller should be located in the forest that contains the Exchange organization.

  • The Exchange servers from which you want to collect data.    You can specify particular server names or use wildcard characters to select multiple servers.

  • The mailbox stores (databases) that you want to collect data from.    For each configured server, you can specify individual mailbox stores to collect data from. Alternatively, you can specify a wildcard character (*) to collect data from all the mailbox stores.

  • Whether you need to collect per-mailbox statistics.    In addition to reporting aggregated statistics at the organization, server, and mailbox store levels, the tool can also gather per-mailbox statistics and report those in the output file. The tool does not display the actual mailbox or user names. The tool only reports statistics for each mailbox. You can use these statistics to help understand how the overall statistics were calculated.

  • The types of messages that you want to generate.    By default, the tool produces informational messages, warnings, and error handling messages. However, you can specify the types of messages that you want the tool to generate by using the configuration file.

  • The time frame for which you want to collect data.    The tool can be configured to only view mailbox items that were generated during a particular time period. This option can help limit processing time and can also be used to provide worst-case rates for peak usage periods.

  • The number of threads that you want to run at the same time for servers and mailboxes.    This option is for advanced usage. The tool can process more than one server at a time and, on each server, it can process more than one mailbox at the same time. The default setting is to process one mailbox at a time on the server with servers processed one at a time.

Entering Information in a Configuration File

After you determine information that you require to run the Exchange Server Profile Analyzer, enter this information in the Config.xml file. To do this, use a text editor such as Notepad to open the Config.xml file. This file is located in the EPA folder. By default, this location is %PROGRAMFILES%\EPA. After you modify the file, save the changes to the file.

The following table describes the tags that are available in the Config.xml file.

Tag name Description

<UserSetting>

This tag surrounds the whole configuration for Exchange Server Profile Analyzer. Do not modify this tag.

<System StatisticsPerMailbox="No" ServerThread="1" MailboxThreadPerServer="5"/>

To collect per-mailbox statistics, change the StatisticsPerMailbox value to "Yes." ServerThread and MailboxThreadPerServer are two hidden attributes in the System tag. The Config.xml file that is created by the .msi file does not show these two attributes. ServerThread specifies how many servers you want to process at the same time. MailboxThreadPerServer indicates the number of mailboxes that Exchange Server Profile Analyzer will process at the same time on each server.

<Log Level="Info"/>

The supported log levels are as follows: info, error, warning, and verbose.

<TimeFrame From="" To="" />

By default, all data is collected. To specify a timeframe, set the From and To values in the TimeFrame tag. The format of these values is:

MM/DD/YYYY HH:MM:SS

<Account User="" DC=""/>

By default, Exchange Server Profile Analyzer uses the credentials of the current user and connects to a domain controller in the domain of the user to gather Exchange organization topology information. To modify the parameters, enter that information in this tag. The user value should be specified as DOMAIN\USER, and the tool will prompt for the password for this account when it runs.

<Servers>

This tag surrounds all the server tags that will be scanned during this run. Do not modify this tag.

<Server Name="">

This tag represents either a single server that should be scanned as part of this run (by setting the Name value to the name of a specific server) or a group of servers that are represented by a wildcard in the Name value. To scan all servers, specify Name="*".

<MailboxStore Name=""StorageGroup =""/>

This tag represents a single mailbox store (database) in the containing server or multiple mailbox stores. Multiple mailbox stores are specified by a wildcard in the Name value. There can be multiple MailboxStore tags in the configuration file.

The StorageGroup attribute specifies which storage group the mailbox store belongs to. Specifying this attribute is useful when there are duplicate mailbox store names under different storage groups. You can safely ignore this attribute if each mailbox store has a unique name.

</Server>

Specifies the end of the configuration for a server.

</Servers>

Specifies the end of the configuration for all servers.

</UserSetting>

Specifies the end of the configuration file.

Output File

When you run the tool, an .html file is produced in the user's application data directory. This file contains processed statistics together with an .xml file. To view the .html file, open it in Internet Explorer. You can use the EpaSummarizer.exe command to generate a summary report from the .xml files from different runs of Exchange Server Profile Analyzer.

Outlook Web Access Profile Analyzer

The Exchange Server Profile Analyzer for the Outlook Web Access tool (EpaOWACmd) enables server administrators to capture estimated usage profile information for Office Outlook Web Access users on a particular Exchange Mailbox server. The tool collects data from the w3svc log files to estimate how frequently users perform various mailbox actions in Outlook Web Access.

The following table describes the options for EpaOWACmd.

Option Description

/F:

Specifies the directory that contains the log files to process. For example, type epaowacmd /F:"c:\logfiles\".

/U:

Generates per-user statistics as well as overall statistics. User names are not displayed.

/S:

Specifies a start date and time to limit the scope of the statistics. Specify this information in local time. The expected format is:

MM/DD/YYYY HH:MM:SS

/E:

Specifies an end date and time to limit the scope of the statistics. Specify this information in local time. The expected format is:

MM/DD/YYYY HH:MM:SS

/T:

Specifies a trace type. The available types are info, warning, error, or verbose.

/O:

Specifies an optional output file name with either an .xml or .html file name extension. The default output file is stored in the user's application data path. For example, specify C:\Documents and Settings\<username>\Application Data\Microsoft\Epa\epaowadataYYYYMMDD_HHMMSS.html.

/?

Displays the file usage and then exits the program.

Internet Information Services (IIS) Logging

To use the EpaOWACmd.exe program, the server from which you want to gather statistics must have IIS logging enabled.

To enable logging in IIS

  1. Start Internet Information Services (IIS) Manager.

  2. Expand the server, and then locate the Web site that contains the Outlook Web Access virtual directory. Generally, this is Default Web Site.

  3. Right-click the Web site, and then click Properties.

  4. On the Web Site tab, click to select the Enable logging check box, and then verify that the W3C Extended Log File Format option is selected in the Active log format list.

  5. Click Properties next to the Active log format list.

  6. Note the path that appears in the Log file directory box. When you run EpaOWACmd.exe, you must copy log files from this path.

  7. In the Logging Properties dialog box, click the Advanced tab.

  8. Verify that, at a minimum, the following logging option check boxes are selected:

    • Date (date)

    • Time (time)

    • User Name (cs-username)

    • Method (cs-method)

    • URI Stem (cs-uri-stem)

    • URI Query (cs-uri-query)

  9. Click OK two times, and then exit the Internet Information Services (IIS) Manager tool.

Exchange Server Profile Analyzer Summarizer

The Exchange Server Profile Analyzer Summarizer (EpaSummarizer) aggregates collectors for multiple Exchange Server Profile Analyzer collection runs. The summarizer parses the output files that are generated by Exchange Server Profile Analyzer and produces a new output file in the aggregated collectors.

The following table describes the options for EpaSummarizer.

Option Description

/W:

Specifies the working directory to look for the files. By default, the current directory is used.

/O: (optional)

Specifies an optional output file name with either an .xml or .html suffix. The default output file is at the user's application data path. For example, the file is C:\Documents and Settings\<username>\Application Data\Microsoft\Epa\epasumdataYYYYMMDD_HHMMSS.html.

/L: (optional)

Specifies a log level. The available levels are info, warning, error, or verbose. The default log level is "info."

/F:file1,file2

Specifies the files to be merged.

/?

Prints the usage information and then exits the program.

Note

Exchange Server Profile Summarizer does not look for repeated file names. Therefore, the tool will merge a file as many times as the file is specified.

Exchange Server Profile Analyzer Data Collectors

Exchange Server Profile Analyzer reports on the following two statistics types:

  • Time Frame Unrestricted Statistics

  • Time Frame Restricted Statistics

The following tables describe the available data collectors for these statistics.

Collectors that are calculated without time frame restrictions

Collector name Description

MailboxTotalSize

The total size, in bytes, of the mailbox.

MailboxSizeAggregate

Mailbox size statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

MailboxCount

Total number of mailboxes that have been sampled.

RulesTotalCount

Total number of rules that are defined in the mailbox.

RulesAggregate

Average number of rules across all mailboxes. Provides Average, Minimum, and Maximum.

FolderTotalCount

Total number of visible folders in the mailbox.

FolderUserCreatedCount

Total number of user-created folders

FolderOutlookCreatedCount

Total number of Outlook-created folders.

FolderTopLevelCount

Number of visible folders in the mailbox.

FolderUserCreatedTopLevelCount

Number of user created folders that are direct children of the root of the mailbox.

SearchFolderCount

Number of search folders in the current mailbox.

FolderHierarchyHeight

The height of the folder tree.

FolderTopLevelSubfoldersAggregates

Average number of children each child of the folder tree root has.

FolderTopLevelHeightAggregates

Average height of each root folder’s children's subtrees.

FolderSize

Size in bytes of all the messages in a folder. Takes list of folders to measure, such as Inbox, Deleted Items, Sent Items, Calendar, Contacts, Tasks, and Notes.

FolderSizeAggregates

Folder size statistics (across all folders in mailbox). Provides Average, Minimum, and Maximum.

MessageMailboxCount

Number of messages in the mailbox.

MessageFolderCount

Number of messages in a folder. Takes a list of folders to measure, such as Inbox, Deleted Items, Sent Items, Calendar, Contacts, Tasks, and Notes.

CalendarSizeAggregates

Calendar folder size statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

CalendarItemAggregates

Calendar folder item count statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

ContactsSizeAggregates

Contacts folder size statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

ContactsItemAggregates

Contacts folder item counts statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

NotesSizeAggregates

Notes folder size statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

NotesItemAggregates

Notes folder item count statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

TasksSizeAggregates

Tasks folder size statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

TasksItemAggregates

Tasks folder item count statistics (across all mailboxes). Provides Average, Minimum, and Maximum.

Collectors that are calculated with a time frame applied

Collector name Description

MessageSizeDistribution

Counts messages in a size range. Takes a list of ranges. For example, "2,10,100,1024" would provide counts of messages from 0-2, 2-10, 10-100, 100-1024, and 1024-beyond.

MessageSizeAggregates

Message size statistics across all messages. Provides Average, Minimum, Maximum.

MessageBodyTypesCount

Number of messages in each body type requested. Takes list of body types as input. For example, takes "RTF,HTML,Other".

MessageContainsAtLeastOneDLCount

Number of messages that contain at least one distribution list in the recipients table.

MessageContainsAtLeastOneDDLCount

Number of messages that contain at least one dynamic distribution list in the recipients table.

MessageContainsAtLeastOneAttachmentCount

Number of messages that contain at least one attachment.

RealMessageRepliesSentPerDayAggregate

Average number of messages prefixed with "RE:" that are sent per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one message is replied to.

DRealMessageRepliesSentPerDayAggregate

Similar to RealMessageRepliesSentPerDayAggregate, but includes the messages in the dumpsters.

RealMessageForwardsSentPerDayAggregates

Average number of messages prefixed with "FW:" that are sent per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one message is forwarded.

DRealMessageForwardsSentPerDayAggregates

Similar to RealMessageForwardsSentPerDayAggregates, but includes the messages in the dumpsters.

MessageUnreadCount

Number of messages that are unread.

MessageDAMCount

Number of Deferred Action Messages in the mailbox.

MessageSMIMECount

Number of SMIME messages in the mailbox.

MessageReplyCount

Number of messages in which the subject prefix is "RE:" or an equivalent subject prefix for the given culture.

MessageForwardCount

Number of messages in which the subject prefix is "FW:" or an equivalent subject prefix for the given culture.

MeetingRequestCount

Number of meeting requests in the calendar.

RealMeetingRequestReceivedPerDayAggregates

Average number of meeting requests received per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one meeting request is received.

RealMessageDeletedPerDayAggregates

Average number of messages deleted per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one message is deleted.

DRealMessagePermanentDeletedPerDayAggregates

Average number of messages permanently deleted per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one message is permanently deleted.

RecipientsPerMessageSentAggregates

Average number of recipients per message sent. Provides Average, Minimum, and Maximum.

RecipientsDLPerMessageSentAggregates

Average number of distribution lists per message sent. Provides Average, Minimum, and Maximum.

RecipientsDDLPerMessageSentAggregates

Average number of dynamic distribution lists per message sent. Provides Average, Minimum, and Maximum.

RealAppoinmentCreatedPerDay

Average number of appointments created per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one appointment is created.

RealContactCreatedPerDay

Average number of contacts created per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one contact is created.

RealMeetingsPerDay

Average number of meetings per day. Provides Average, Minimum, and Maximum. It is averaged over the number of days when at least one meeting is scheduled.

AttachmentSizeDistribution

Count attachments in a size range. Takes a list of ranges. For example. "2,10,100,1024" would provide counts of attachments from 0-2, 2-10, 10-100, 100-1024, and 1024-beyond.

AttachmentSizeAggregates

Attachment size statistics across all attachments. Provides Average, Minimum, and Maximum.

AttachmentPerMessageAggregates

Attachment count statistics across all messages. Provides Average, Minimum, and Maximum.

Outlook Web Access Profile Analyzer Data Collectors

The following table lists the Outlook Web Access Profile Analyzer data collectors. Because of the differences between the Outlook Web Access logs that are generated by Exchange 2003 and Exchange 2007, some of the collectors apply only to a particular version of Exchange.

Collector name Applies to Exchange 2007 Applies to Exchange 2003

LogOn

Yes

Yes

LogOff

Yes

Yes

NewFolder

Yes

Yes

OpenFolder

Yes

Yes

ViewMailAt<folder>

No

Yes

OpenMailAt<folder>

No

Yes

ViewMail

Yes

No

OpenMail

Yes

No

EditMailSaved

Yes

Yes

EditMailSavedWithAttachment

Yes

Yes

EditMailSent

Yes

Yes

EditMailSentWith Attachment

Yes

Yes

ReplyAt<folder>

No

Yes

ReplyAllAt<folder>

No

Yes

Reply

Yes

No

ReplyAll

Yes

No

Forward

Yes

No

DeleteMailAt<folder>

No

Yes

BulkDeleteAt<folder>

No

Yes

DeleteMail

Yes

No

BulkDeleteAt<folder>

No

Yes

PermanentDelete

Yes

Yes

BulkPermanentDelete

No

Yes

MoveMail

Yes

Yes

NewMailSaved

Yes

Yes

MewMailSavedWith Attachment

Yes

Yes

NewMailSent

Yes

Yes

NewMailSentWithAttachment

Yes

Yes

OpenContacts

Yes

Yes

OpenContact

No

Yes

NewContact

Yes

Yes

EditContact

Yes

Yes

DeleteContact

Yes

Yes

OpenTasks

Yes

Yes

OpenTask

No

Yes

NewTask

Yes

Yes

EditTask

Yes

Yes

DeleteTask

Yes

Yes

OpenCalendar

Yes

Yes

NewAppointment

Yes

Yes

NewMeetingRequest

Yes

No

SendMeetingRequestUpdate

Yes

No

CancelMeetingRequest

Yes

Yes

OpenAppointment

Yes

Yes

EditAppointment

Yes

Yes

DeleteAppointment

Yes

Yes

OpenNote

No

Yes

NewNote

No

Yes

NewNoteWithAttachment

No

Yes

ForwardNote

No

Yes

DeleteNote

No

Yes

OpenPublicFolder

No

Yes

NewPublicFolder

No

Yes

ViewPublicItem

No

Yes

NewPublicItem

No

Yes

DeletePublicItem

No

Yes

Frequently Asked Questions

Question 1: Exchange Server Profile Analyzer reports CompletedWithException. Where can I find the exceptions that occurred during the data collection process?

Answer: Exchange Server Profile Analyzer reports exception information in a log file. The default log file is located at the user's application data path. For example, it is located at D:\Users\Public\Microsoft\EPA\epalogYYYY-MM-DD_HH-MM-SS.log on Windows Server 2008-based computers or at D:\Documents and Settings\All Users\Microsoft\EPA\epalogYYYY-MM-DD_HH-MM-SS.log on Windows Server 2003-based computers.

Question 2: I receive an error message that resembles the following even though my user account has sufficient permissions, Integrated Windows Authentication is enabled, and forms-based authentication is not enabled:

Error: User ServerName\MDBName\Mailbox <name> cannot access any of the following links: https://ServerName/Exchange/...

Answer: In this scenario, you must determine the exact error message that is returned for each DAV request that Exchange Server Profile Analyzer submits. To obtain this kind of information, set the log level to verbose before you run the tool. After you run Exchange Server Profile Analyzer, examine the log file. If you see "Error: The remote server returned an error: (502) Bad Gateway," disable the automatic configuration and proxy settings from Internet Explorer, and then try to run the tool.

To disable automatic configuration and proxy settings

  1. Start Internet Explorer. On the Tools menu, click Internet Options.

  2. Click the Connections tab, and then click LAN Settings.

  3. In the Local Area Network (LAN) Settings dialog box, click to clear all the check boxes, and then click OK.

For More Information

For more information about Exchange Server Profile Analyzer, see the following Exchange Web log (blog) articles: