Mailbox Assistants – Per Database Test

The Microsoft Exchange Mailbox Assistants service performs background processing of mailboxes in the Exchange store. It provides functionality for Calendar Attendant, Resource Booking Attendant, Out of Office Assistant, and Managed Folder Mailbox Assistant.

The Exchange Assistants can be either event-based Assistants or time-based Assistants. The event-based Assistants start to process mailboxes on the occurrence of an event, such as on a change of Out-of-Office (OOF) information in one or more mailboxes. The time-based Assistants process the mailboxes periodically. Each time-based Assistant deploys an Assistants Driver that periodically checks whether the current time is within a specified time window. When the current time reaches the specified time window, the Assistants Driver invokes the corresponding time-based Assistant. The time-based Assistant then obtains a list of mailboxes from the database and starts to process them.

Latencies in background processing can adversely impact a user’s experience with his/her Exchange mailbox. If this is to be avoided, administrators should keep an eye on the activities of every assistant on each of the mailboxes it processes, isolate potential processing slowdowns, and identify the mailboxes that will be affected. This is where the Mailbox Assistants – Per Database test helps.

This test auto-discovers the mailbox assistants at work and the mailbox databases they are working on. For each assistant, the test reports the time taken by that assistant to process events and mailboxes, and thus reveals bottlenecks in processing.

Target of the test : A Microsoft Exchange 2013/2016 server

Agent deploying the test : An internal/remote agent

Outputs of the test : One set of results for every mailbox assistant per mailbox database

Configurable parameters for the test
  1. Test period - How often should the test be executed
  2. Host - The host for which the test is to be configured.
  3. port – The port at which the host listens.
  4. xchgextensionshellpath - The Exchange Management Shell is a command-line management interface, built on Windows PowerShell which enables you to administer every part of Microsoft Exchange. This test uses the Exchange management shell to run scripts and collect the desired performance metrics from the Exchange server. By default, the test auto-discovers the location of the Exchange management shell and thus, automatically loads the Exchange management shell snap-in (exshell.psc1) for script execution. This is why, the xchgextensionshellpath is set to none by default. 
  5. execution timeout – Specify the duration (in seconds) for which this test will wait for a response from the server; beyond this duration, the test will timeout.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Average event processing time:

Indicates the average time taken by this assistant for processing events chosen as interesting.

Secs

Ideally, the value of this measure should be less than 2 minutes (i.e., 120 seconds). A very high value indicates that there are many events in queue with long waiting times. This in turn indicates a processing bottleneck.

Average mailbox processing time:

Indicates the average processing time of mailboxes for time-based assistants.

Secs

A low value is desired for this measure, as high values are indicative of delays in processing.

Time elapsed since the last databases update:

Indicates the time since the last attempt made by this assistant to update the list of databases.

Minutes

 

Time elapsed since the last event poll:

Indicates the time elapsed (in seconds) since the last event was polled by this assistant for this database.

Secs

 

Time elapsed since the last event poll attempt:

Indicates the time elapsed (in seconds) since the last attempt made by this assistant to poll events for this database.

Secs

 

Number of events in queue:

Indicates the current number of events in the in-memory queue of this database waiting to be processed by this assistant.

Number

Ideally, the value of this measure should be low at all times. High values may indicate a performance bottleneck.

Number of mailboxes processed:

Indicates the number of mailboxes processed by this assistant.

Number

 

Rate of mailboxes processed:

Indicates the rate at which this assistant processed mailboxes.

Processed/Sec

Ideally, the value of this measure should be high at all times. Low values may indicate a performance bottleneck.