Exchange 2007/2010 comes with a new feature for monitoring the resources on the transport servers known as Back Pressure. The feature runs only on hub and edge transport servers. Exchange Transport Service is responsible for the running it.
The following resources are closely monitored by the Back Pressure feature.
1. The available disk space on the drive that has the transport database (Mail.que).
2. The available disk space on the drive that has the transport database log files.
3. Memory used by all processes
4. Memory used by EdgeTransport.exe process.
5. Number of uncommitted transport database transactions in the memory, known as Version Buckets.
Configuring Back Pressure
There are three levels for the status of these counters – Normal, Medium and High. Each of the levels has pre-defined threshold values for each counter that is being monitored.
Typical symptoms of Back Pressure feature being kicked in is when you have emails stuck in the Drafts folder or get a “4.3.1 Insufficient System Resources” NDR from exchange.
For example, the available disk space on the drive that has the transport database should be at least 500mb. If it goes below that level, the transport servers stop sending and receiving emails. The available space threshold was 4 GB for pre SP1 servers, which was bit of overkill. Similarly, all resources that are monitored has a pre-defined threshold limits.
Can we change any of these settings? Of course you can! All settings related to the back pressure feature is stored in edgeTransport.exe.config file which is located in the bin directory. By default, it is in C:\Program Files\Microsoft\Exchange Server\Bin. Open the config file in notepad and have a look at the settings & change any if needed. The Transport Service will have to be restarted for the changes to take effect.
Can we disable Back Pressure feature altogether? And the answer is yes! You can edit the config file with the entry “false” for , save the file and restart the transport service. Job done! It is not recommended to disable the feature as it will be useful for to know when resources are running out. If you want some time to sort out the resource issues like increasing the disk space available but keep the server operational at the same time, disable the feature, fix the resource issue and enable it again.
Can we change the resource monitoring interval? The default interval is 2 seconds. You can modify the value with anything between 1 and 30 seconds. Edi the config file with the value of your choice for the entry, save the config and restart the transport server.
An important point to note is that the back pressure feature is only available for hub and edge transport servers. Check this article for more information regarding changing the back pressure settings.
How does Back Pressure work
The Back Pressure feature uses 5 (five) stages to control the monitored resources. This means that the services will not be stopped at the first sign of trouble. For each stage certain actions that will be performed when Back pressure identifies a resource bottleneck. If there is no result at the current level and resource utilization is still increasing, the stage level will increase until the system resources come back to normal values. By default the levels are checked using the interval defined in the ResourceMonitoringInterval parameter of the EdgeTransport.exe.config file.
Below is a brief description of each stage. Remember that each stage checks their information against the parameters of the configuration file.
Stage 1The memory utilized by the Edge Transport.exe process is validated. If higher than specified in the configuration file a process called Garbage collection will start. This process checks for unused objects that exist in memory, and removes those unused objects from memory.
Stage 2The number of uncommitted message queue database transactions that exist in memory is validated. If higher than the configured value, an attempt is made to force the message queue database transactions that are in memory to be written in the transaction log files.
Stage 3The utilization levels of all monitored resources are checked against the configuration file for normal levels of utilization. If overutilization persists; the resource with the highest level of utilization is acted upon. These actions are different in Edge Transport and Hub Transport, and you can see the action in the following tables:
|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|
|Resource utilization level||Connections from Hub Transport servers||Connections from other messaging servers||Pickup directory and Replay directory submission|
Stage 4the memory utilization of the Exchange Transport process is validated against the config file. Even if we restart the Exchange Transport service the messages located in the Submission queue will not be processed automatically when the service starts. Other validation occurs in the message queue database transactions that are kept in memory. If higher than the normal level the following actions will occur: the transport dumpster will be disabled; message delivery to any remote destination that uses a remote delivery queue will be disabled.
Stage 5If the memory utilization of the Exchange Transport process is still at a high or medium level or the memory utilization of all processes exceeds the value defined in the configuration file, the following actions will occur: DNS cache will be flushed from memory; and the message dehydration process occurs.