Understanding Back Pressure

Microsoft Exchange Server 2007 will reach end of support on April 11, 2017. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.

 

Applies to: Exchange Server 2007, Exchange Server 2007 SP1, Exchange Server 2007 SP2, Exchange Server 2007 SP3

Back pressure is a system resource monitoring feature of the Microsoft Exchange Transport service that exists on computers that are running Microsoft Exchange Server 2007 that have the Hub Transport server role or Edge Transport server role installed. Important system resources, such as available hard disk drive space and available memory, are monitored. If utilization of a system resource exceeds the specified limit, the Exchange server stops accepting new connections and messages. This prevents the system resources from being completely overwhelmed and enables the Exchange server to deliver the existing messages. When utilization of the system resource returns to a normal level, the Exchange server accepts new connections and messages.

The following system resources are monitored as part of the back pressure feature:

  • Free space on the hard disk drive that stores the message queue database.

  • Free space on the hard disk drive that stores the message queue database transaction logs.

  • The number of uncommitted message queue database transactions that exist in memory.

  • The memory that is used by the EdgeTransport.exe process.

  • The memory that is used by all processes.

For each monitored system resource on a Hub Transport server or Edge Transport server, the following three levels of resource utilization are applied:

  • Normal   The resource is not overused. The server accepts new connections and messages.

  • Medium   The resource is slightly overused. Back pressure is applied to the server in a limited manner. Mail from senders in the authoritative domain can flow. However, the server rejects new connections and messages from other sources.

  • High   The resource is severely overused. Full back pressure is applied. All message flow stops, and the server rejects all new connections and messages.

Options for Configuring Back Pressure

Warning

We strongly discourage any modifications to the back pressure settings in the EdgeTransport.exe.config file on a production server. Modifications to the back pressure settings may result in poor performance or data loss. We recommend that you investigate and correct the root cause of any back pressure events that you may encounter before you modify the back pressure settings.

All configuration options for back pressure are available in the EdgeTransport.exe.config application configuration file that is located in the C:\Program Files\Microsoft\Exchange Server\Bin directory. The EdgeTransport.exe.config file is an XML application configuration file that is associated with the EdgeTransport.exe file. EdgeTransport.exe and MSExchangeTransport.exe are the executable files that are used by the Microsoft Exchange Transport service. This service runs on every Hub Transport server or Edge Transport server. Changes that are saved to the EdgeTransport.exe.config file are applied after the Microsoft Exchange Transport service is restarted. The default value is enforced if either of the following conditions is true:

  • A configuration option is missing.

  • A configuration option is present and contains the default value.

The following example shows the typical structure of the EdgeTransport.exe.config file:

<configuration>

<runtime>

<gcServer enabled="true" />

</runtime>

<appSettings>

<add key="Configuration Option" value="Value" />

...

</appSettings>

</configuration>

You can add new configuration options or modify existing configuration options in the <appSettings> section. Many configuration options available are completely unrelated to back pressure. Any configuration options that don't involve back pressure are outside the scope of this topic.

Note

The parameter names in the <add key=../> section are case sensitive.

Table 1 shows the general configuration options for back pressure that are available in the EdgeTransport.exe.config file.

Table 1   General back pressure options

Parameter name Description

EnableResourceMonitoring

This parameter enables or disables back pressure. The default value is TRUE.

ResourceMonitoringInterval

This parameter controls how frequently the system resource utilization levels are checked. To specify a value, enter the value as a time span: hh:mm:ss, where h = hours, m = minutes, and s = seconds. The default value is 00:00:02. The valid range for this parameter is 00:00:01 to 00:00:30.

Monitoring the Free Hard Disk Drive Space for the Message Queue Database

By default, the message queue database is stored at C:\Program Files\Microsoft\ExchangeServer\TransportRoles\data\Queue. This location is controlled by the QueueDatabasePath parameter in the EdgeTransport.exe.config file.

For more information about the message queue database, see Managing the Queue Database.

By default, the high level of hard disk drive space utilization is calculated by using the following formula:

100*(hard disk drive size - fixed constant) / hard disk drive size

In the release to manufacturing (RTM) version of Microsoft Exchange Server 2007, the value of fixed constant is 4 GB.

In Microsoft Exchange Server 2007 Service Pack 1 (SP1), the value of fixed constant is 500 MB.

The results of this formula are expressed as a percentage of the total hard disk drive space that is being used. The formula guarantees that free hard disk drive space is always available for the message queue database, regardless of the size of the hard disk drive. The results of the formula are always rounded down to the nearest integer.

By default, the medium level of hard disk drive utilization is 2 percent less than the high level. By default, the normal level of hard disk drive utilization is 4 percent less than the high level. As the available hard disk drive space decreases, the hard disk drive utilization increases.

You can override the default calculations for the high, medium, and normal levels of hard disk drive utilization by specifying the values in the EdgeTransport.exe.config file. Table 2 shows the options for monitoring the free hard disk drive space for the message queue database that are available in the EdgeTransport.exe.config file.

Table 2   Options for monitoring the free hard disk drive space for the message queue database

Parameter name Default value Valid input range

PercentageDatabaseDiskSpaceUsedHighThreshold

0. This value indicates that the default formula will be used.

3 to 100

PercentageDatabaseDiskSpaceUsedMediumThreshold

0. This value indicates that the actual value is 2 percent less than the value of PercentageDatabaseDiskSpaceUsedHighThreshold.

3 to 100. The value must be less than the value of PercentageDatabaseDiskSpaceUsedHighThreshold.

PercentageDatabaseDiskSpaceUsedNormalThreshold

0. This value indicates that the actual value is 2 percent less than the value of PercentageDatabaseDiskSpaceUsedMediumThreshold.

3 to 100. The value must be less than the value of PercentageDatabaseDiskSpaceUsedMediumThreshold.

Important

When the back pressure limits for hard disk drive space utilization are set to their default levels, the hard disk drive that stores the message queue database on an Edge Transport server or Hub Transport server must always have a fixed amount of free hard disk drive space. In Exchange 2007 RTM, the amount of required free hard disk drive space is 4 GB. In Exchange 2007 SP1, the amount of required free hard disk drive space is 500 MB. If the available free space is less than the required amount of free hard disk drive space, the hard disk drive utilization level is considered high. Therefore, all message flow stops. In that case, you must follow one of these steps:
- Relocate the message queue database to a different hard disk drive that has more free space. For more information, see How to Change the Location of the Queue Database.
- Increase the values of the PercentageDatabaseDiskSpaceUsedHighThreshold, PercentageDatabaseDiskSpaceUsedMediumThreshold, or PercentageDatabaseDiskSpaceUsedNormalThreshold parameters.

Monitoring the Free Hard Disk Drive Space for the Message Queue Database Transaction Logs

By default, the message queue database transaction logs are stored at C:\Program Files\Microsoft\ExchangeServer\TransportRoles\data\Queue. This location is controlled by the QueueDatabaseLoggingPath parameter in the EdgeTransport.exe.config file.

For more information about the message queue database, see Managing the Queue Database.

The EdgeTransport.exe.config file contains a QueueDatabaseCheckPointDepthMax parameter that has a default value of 20 MB. This parameter controls the total allowed size of all uncommitted transaction logs that exist on the hard disk drive. This parameter is used in the formula that calculates hard disk drive utilization.

Note

The value of the QueueDatabaseCheckPointDepthMax parameter applies to all transport-related Extensible Storage Engine (ESE) databases that exist on the Hub Transport server or Edge Transport server. This would include the message queue database and the IP filter database. If you set the value of the QueueDatabaseCheckPointDepthMax parameter too low, this can cause significant performance issues because uncommitted transactions are forcibly committed to the database instead of being written to transaction logs. We recommend that you do not modify the default value of the QueueDatabaseCheckPointDepthMax parameter.

By default, the high level of hard disk drive utilization is calculated by using the following formula:

100*(hard disk drive size - 25*DatabaseCheckPointDepthMax) / hard disk drive size

If you use the 20 MB default value of the DatabaseCheckPointDepthMax parameter, 500 MB is always reserved for the message queue database transaction logs regardless of the size of the hard disk drive. The results of the formula are always rounded down to the nearest integer.

By default, the medium level of hard disk drive utilization is 2 percent less than the high level. The normal level of hard disk drive utilization is 4 percent less than the high level. As the available hard disk drive space decreases, the hard disk drive utilization increases.

You can override the default calculations for the high, medium, and normal levels of hard disk drive utilization by specifying the values in the EdgeTransport.exe.config file. Table 3 shows the options for monitoring the free hard disk drive space for the message queue database transaction logs that are available in the EdgeTransport.exe.config file.

Table 3   Options for monitoring the free hard disk drive space for the message queue database transaction logs

Parameter name Default value Valid input range

PercentageDatabaseLoggingDiskSpaceUsedHighThreshold

0. This value indicates that the default formula will be used.

3 to 100

PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold

0. This value indicates that the actual value is 2 percent less than the value of PercentageDatabaseLoggingDiskSpaceUsedHighThreshold.

3 to 100. The value must be less than the value of PercentageDatabaseLoggingDiskSpaceUsedHighThreshold.

PercentageDatabaseLoggingDiskSpaceUsedNormalThreshold

0. This value indicates that the actual value is 2 percent less than the value of PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold.

3 to 100. The value must be less than the value of PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold.

Monitoring the Number of Uncommitted Message Queue Database Transactions That Exist in Memory

A list of changes that are made to the message queue database is kept in memory until those changes can be committed to a transaction log. Then the list is committed to the message queue database itself. These outstanding message queue database transactions that are kept in memory are known as version buckets. The number of version buckets may increase to unacceptably high levels because of virus issues, problems with the message queue database integrity, or hard disk drive performance.

You can override the default values for the high, medium, and normal numbers of version buckets by specifying the values in the EdgeTransport.exe.config file. Table 4 shows the options for monitoring the version buckets that are available in the EdgeTransport.exe.config file.

Table 4   Options for monitoring the number of version buckets

Parameter name Default value in Exchange 2007 RTM Default value in Exchange 2007 SP1 Valid input range

VersionBucketsHighThreshold

100

200

1 to 8000

VersionBucketsMediumThreshold

60

120

1 to 8000. The value must be less than the value of VersionBucketsHighThreshold.

VersionBucketsNormalThreshold

40

80

1 to 8000. The value must be less than the value of VersionBucketsMediumThreshold.

Monitoring Memory That is Used by the EdgeTransport.exe Process

By default, the high level of memory utilization by the EdgeTransport.exe process is calculated by using the following formula:

75 percent of the total physical memory or 1 TB, whichever is less

This calculation doesn't include virtual memory that is available on the hard disk drive in the paging file, or the memory that is used by other processes. The results of this formula are expressed as a percentage of the total memory that is used by the EdgeTransport.exe process. The results of the formula are always rounded down to the nearest integer.

By default, the medium level of memory utilization by the EdgeTransport.exe file is calculated as 73 percent of the total physical memory or 2 percent less than the value of the high level, whichever is less. By default, the normal level of memory utilization by the EdgeTransport.exe file is calculated as 71 percent of the total physical memory or 4 percent less than the value of the high level, whichever is less. As the available memory decreases, memory utilization increases.

You can override the default calculations for high, medium, and normal memory utilization by the EdgeTransport.exe process by specifying the values in the EdgeTransport.exe.config file. Table 5 shows the options for monitoring the memory that is used by the EdgeTransport.exe process that are available in the EdgeTransport.exe.config file.

Table 5   Options for monitoring the memory that is used by the EdgeTransport.exe process

Parameter name Default value Valid input range

PercentagePrivateBytesUsedHighThreshold

0. This value indicates that the default calculation will be used.

3 to 100

PercentagePrivateBytesUsedMediumThreshold

0. This value indicates that the actual value is 2 percent less than value PercentagePrivateBytesUsedHighThreshold.

3 to 100. The value must be less than the value of PercentagePrivateBytesUsedHighThreshold.

PercentagePrivateBytesUsedNormalThreshold

0. This value indicates that the actual value is 2 percent less than value PercentagePrivateBytesUsedMediumThreshold.

3 to 100. The value must be less than the value of PercentagePrivateBytesUsedMediumThreshold.

Monitoring the Memory that is Used by All Processes

By default, the high level of memory utilization by all processes is 94 percent of total physical memory. This value doesn't include virtual memory that is available on the hard disk drive in the paging file. As the available memory decreases, memory utilization increases.

When the specified memory utilization level is reached, message dehydration occurs. Message dehydration is the act of removing unnecessary elements of queued messages that are cached in memory. Complete messages are cached in memory for enhanced performance. Removal of the MIME content of queued messages from memory reduces the memory that is used at the expense of higher latency because the messages are read directly from the message queue database. By default, message dehydration is enabled. You can enable or disable message dehydration in the EdgeTransport.exe.config application configuration file.

You can override the default value for high memory utilization by all processes by specifying the high value in the EdgeTransport.exe.config file. Table 6 shows the options for monitoring the memory that is used by the all process that are available in the EdgeTransport.exe.config file.

Table 6   Options for monitoring the memory that is used by all processes that are available in the EdgeTransport.exe.config file

Parameter name Default value Valid input range

DehydrateMessagesUnderMemoryPressure

TRUE

TRUE or FALSE

PercentagePhysicalMemoryUsedLimit

94

3 to 100

How Back Pressure is Applied

Back pressure doesn't stop all message delivery at the first sign of trouble. Monitoring and corresponding actions are applied in several stages when there are indications that a monitored resource is overused. If these actions don't successfully restore resource utilization to a normal level, additional corrective actions are taken. The severity of the corrective actions continues to escalate until resource utilization returns to a normal level. The frequency at which the resource utilization levels are checked is controlled by the ResourceMonitoringInterval parameter. The default value is 2 seconds.

The following sections describe the stages in which back pressure in applied.

Stage 1

The memory utilization of the EdgeTransport.exe process is compared to the value that is specified by the PercentagePrivateBytesUsedNormalThreshold parameter. The default value is 71 percent of the total physical memory. If the memory utilization of the EdgeTransport.exe process is higher than the specified normal level, garbage collection is forced. Garbage collection is a process that checks for unused objects that exist in memory, and reclaims the memory that is used by those unused objects.

Stage 2

The number of uncommitted message queue database transactions that exist in memory is compared to the value specified by the VersionBucketsNormalThreshold parameter. In Exchange 2007 RTM, the default value is 40. In Exchange 2007 SP1, the default value is 80. If the number of uncommitted message queue database transactions that exist in memory is higher than the specified normal level, an attempt is made to force the outstanding message queue database transactions that exist in memory to be written to transaction logs.

Stage 3

The utilization levels of all monitored resources are checked against specified values for normal levels of utilization. If any of the resource levels are higher than the specified values for normal levels, the resource with the highest level of utilization is used to take action. The following sections describe the actions taken on Hub Transport servers and Edge Transport servers at different resource utilization levels.

Hub Transport Servers

For a medium level of resource utilization on a Hub Transport server:

  • Incoming Simple Mail Transfer Protocol (SMTP) connections from other Hub Transport servers are accepted.

  • Incoming SMTP connections and from other messaging servers are rejected.

  • The store driver continues to accept messages from Mailbox servers.

  • The Pickup directory and the Replay directory stop processing messages.

For a high level of resource utilization on a Hub Transport server:

  • Incoming SMTP connections from other Hub Transport servers are rejected.

  • Incoming SMTP connections from other messaging server are rejected.

  • The store driver stops accepting messages from Mailbox servers.

  • The Pickup directory and the Replay directory stop processing messages.

Table 7 describes the effects of back pressure on a Hub Transport server.

Table 7   Effects of back pressure on Hub Transport servers

Resource utilization level Connections from other Hub Transport servers Connections from other messaging servers Store driver connections from Mailbox servers Pickup directory and Replay directory submission Internal mail flow

Medium

Allowed

Rejected

Allowed

Rejected

Functional

High

Rejected

Rejected

Rejected

Rejected

Not functional

Edge Transport Servers

For a medium level of resource utilization on an Edge Transport server:

  • Inbound SMTP connections from other messaging servers are rejected.

  • The Pickup directory and the Replay directory stop processing messages.

For a high level of resource utilization on an Edge Transport server:

  • Inbound SMTP connections from other messaging servers are rejected.

  • The Pickup directory and the Replay directory stop processing messages.

Table 8 describes the effects of back pressure on an Edge Transport server.

Table 8   Effects of back pressure on Edge Transport servers

Resource utilization level Connections from Hub Transport servers Connections from other messaging servers Store driver connections from Mailbox servers Pickup directory and Replay directory submission Internal mail flow

Medium

Rejected

Rejected

Not applicable

Rejected

Not applicable

High

Rejected

Rejected

Not applicable

Rejected

Not applicable

Stage 4

The memory utilization of the EdgeTransport.exe process is compared to the value specified by the PercentagePrivateBytesUsedNormalThreshold parameter. The default value is 71 percent of the total physical memory. If the memory utilization of the EdgeTransport.exe process is higher than the specified normal level, the following action occurs:

  • If the Microsoft Exchange Transport service is restarted, messages that exist in the submission queue are not automatically processed when the service starts.

The number of transactions in the uncommitted message queue database that exist in memory is compared to the value specified by the VersionBucketsNormalThreshold parameter. In Exchange 2007 RTM, the default value is 40. In Exchange 2007 SP1, the default value is 80. If the number of transactions in the uncommitted message queue database that exist in memory is larger than the specified normal level, the following actions occur:

  • The transport dumpster is disabled. The transport dumpster is a feature of the Hub Transport server role that should be enabled when using cluster continuous replication (CCR) or local continuous replication (LCR). The transport dumpster submits recently delivered mail after an unscheduled outage in a CCR environment, and as part of the activation process in an LCR environment. The transport dumpster is used only in LCR and CCR environments. For more information, see How to Configure the Transport Dumpster.

  • Message delivery to any remote destination that uses a remote delivery queue is disabled. These destinations include remote domains or remote Active Directory directory service sites. Message delivery to mailbox servers that use mailbox delivery queues is unaffected.

Stage 5

If the memory utilization of the EdgeTransport.exe process is at the medium or high level, or if the memory utilization of all other processes exceeds the maximum specified value, the following actions occur:

  • The enhanced DNS cache is flushed from memory.

  • Message dehydration occurs.

Back Pressure Logging Information in Exchange 2007 RTM

The following list describes the event log entries that are generated by specific back pressure events in Exchange 2007 RTM:

  • Event log entry for changes in resource utilization level

    Event Type: Warning

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15001

    Description: The resource pressure changed from Previous Utilization Level to Current Utilization Level.

  • Event log entry for constantly high resource utilization levels

    Event Type: Warning

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15002

    Description: The resource pressure is constant at High.

  • Event log entry for changes in memory utilization level by the EdgeTransport.exe process

    Event Type: Warning

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15003

    Description: Private bytes consumption changed from Previous Utilization Level to Current Utilization Level.

Back Pressure Logging Information in Exchange 2007 SP1

The following list describes the event log entries that are generated by specific back pressure events in Exchange 2007 SP1:

  • Event log entry for an increase in any resource utilization level

    Event Type: Error

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15004

    Description: Resource pressure increased from Previous Utilization Level to Current Utilization Level.

  • Event log entry for a decrease in any resource utilization level

    Event Type: Information

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15005

    Description: Resource pressure decreased from Previous Utilization Level to Current Utilization Level.

  • Event log entry for critically low available disk space

    Event Type: Error

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15006

    Description: The Microsoft Exchange Transport service is rejecting messages because available disk space is below the configured threshold. Administrative action may be required to free disk space for the service to continue operations.

  • Event log entry for critically low available memory

    Event Type: Error

    Event Source: MSExchangeTransport

    Event Category: Resource Manager

    Event ID: 15007

    Description: The Microsoft Exchange Transport service is rejecting message submissions because the service continues to consume more memory than the configured threshold. This may require that this service be restarted to continue normal operation.