Edge Transport servers must be designed to meet the capacity and transactional I/O requirements of each organization. It is critical to correctly maintain queue growth and to route mail as fast as possible, so that service level agreements (SLAs) are not adversely affected. There are several factors that affect the overall capacity of an Edge Transport server:
-
Message tracking logs
-
Protocol logs
-
Mail database
-
Connectivity logs
-
Agent logs
A minimum of 500 megabytes (MB) of free space and free database space must exist on the drive containing the message queue database, or the transport system will activate back pressure, a system resource monitoring feature of the Microsoft Exchange Server 2007 transport service.
Note: |
|---|
|
In the release to manufacturing (RTM) version of Exchange Server 2007, the transport system will activate back pressure when free space falls below 4 gigabytes (GB). This threshold was lowered to 500 MB in Exchange 2007 Service Pack 1.
|
The default value for back pressure is controlled by the PercentageDatabaseDiskSpaceUsedHighThreshold parameter, which can be modified if necessary. For more information about back pressure, and the options to configure back pressure, see Understanding Back Pressure.
If message tracking logs are enabled, additional capacity is required. Message tracking capacity requirements depend on the number of messages received by the transport server. If your organization currently uses Microsoft Exchange Server 2003, you can determine your current log generation rate, and set a hard limit for the number of days to keep data, such as 10 days. Microsoft generates 220 megabytes (MB) of message tracking logs each business day (less on the weekend) and ensures enough capacity for a week of logs (approximately 1.3 GB). Protocol, connectivity, and agent log sizes vary depending on the activity. As a reference point, the production transport servers at Microsoft generate:
-
From 5 to 15 GB of protocol logs per day on the Edge Transport servers. Enough capacity for the protocol log quota, which is 15 GB, is assured.
-
100 MB of connectivity logs per day on the Edge Transport servers. Enough capacity for a week of logs, which is approximately 600 MB, is assured.
-
250 MB of agent logs per day on the Edge Transport servers. Enough capacity for a week of logs, which is approximately 1.5 GB, is assured.
Transaction logs do not require much disk capacity because normal log creation is limited by the use of circular logging. As a result, transaction logs can be placed on the logical unit number (LUN) containing the operating system. Microsoft uses a two-disk mirror for this LUN.
The database (mail.que) does not store items indefinitely, and the capacity reserved should be the average message size multiplied by the maximum queue, in the case where the queue is at maximum and the server is shut down. A 500,000 item queue with an average message size of 50 kilobytes (KB) is approximately 25 GB of data in the database.
Edge Transport servers that run antivirus scans on incoming mail need enough space for the antivirus quarantine. The disk I/O resource requirements depend on the percentage of incoming mail that is infected with viruses, which is typically small. The quantity of infected messages and attachments and how long they remain in quarantine dictate the amount of space that quarantine requires. One GB of disk space is a good starting point, although each organization's actual needs are different.
For most Edge Transport server deployments, we recommend that you add an overhead factor of 20 percent to the database size (after all other factors have been considered). This value will account for internal structures within the database and ensure adequate space if a spike or change in mail flow results in database size growth.

Capacity Example for an Edge Transport Server
In this example, the transaction logs are stored on the operating system partition (C:), which is hosted by a battery-backed, caching redundant array of independent disks (RAID) controller. The capacity requirements are small (in the range of several megabytes).
Determining the capacity of an Edge Transport server is a two-step process. First, calculate the database size, and then determine the transaction log size.

Step 1: Database Size
Consider an Edge Transport server that receives an average of 5 messages per second (with an average size of 50 KB) over a 24-hour period, with a maximum queue of 500,000 items. After all other factors have been added, an additional 20 percent overhead is included, and the total size on disk is 58 GB, as shown in the following table.
Database size
|
Queue maximum
|
Queue capacity
|
Protocol logs
|
Message tracking logs
|
Antivirus quarantine
|
Connectivity logs
|
Agent logs
|
Free space
|
Total size on disk
|
|---|
|
500,000
|
Approximately 25 GB (500,000 × 50 KB)
|
15 GB
|
1.3 GB
|
1 GB
|
600 MB
|
1.5 GB
|
4 GB
|
58 GB (48 GB + 20%)
|

Step 2: Transaction Log Size
To determine transaction log size, you must consider transactional I/O, other disk I/O, and database I/O per second (IOPS) per message.

Transactional I/O
If the server has enough available memory, incoming mail will be stored in RAM and in the transaction log, minimizing disk impact. When memory resources are low, only the first 128 KB of the message is stored in memory and the transaction log. The rest of the message is stored in the database. During content conversion, data is streamed to a temporary location for processing. This temporary location is specified by the TemporaryStoragePath setting in the EdgeTransport.exe.config file. By default, the TemporaryStoragePath value is set to "C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Temp."
Note: |
|---|
|
By default, the EdgeTransport.exe.config file is located in the %ProgramFiles%\Microsoft\Exchange Server\Bin folder.
|
It is important to place the temp directory on the same LUN as the database. It is also important to set your storage controller cache to 50 percent read and 50 percent write. When there is not a large growing queue, few of the disk I/Os will be read operations. When a queue is present, the message may not be in the database cache, therefore requiring more disk I/Os.

Other Disk I/O
In addition to transactional I/O, there may be other disk I/O on the system. For example:
-
Enabling message tracking logs requires an additional 2–5 percent overhead on disk I/O.
-
Enabling protocol and connectivity logs has a small overhead on disk I/O that depends on the amount of incoming mail.
-
Enabling the default agent logs has a small overhead on disk I/O, although if custom agents are in use, more disk resources may be required.
-
Anti-spam and antivirus operations occur in memory, requiring more CPU resources.
Be sure to test your Edge Transport servers with all of the services running during the test that you expect to use in production.

Database IOPS per Message
During internal testing at Microsoft, an average message size of 60 KB was used. Many organizations size their transport servers with a particular message rate in mind, for example, 20 messages per second. This message rate would require 140 (20 × (4.5 + 2.5)) database I/Os and 220 (20 × 11) log I/Os.
When a queue forms, more reads are required, particularly in the case of RAID-1/0, because every physical disk responds to the read requests, as shown in the following table.
Database IOPS per message
|
Edge transport database I/O (steady state)
|
Approximate Edge I/O
|
|---|
|
Total IOPS per message (approximately 60 KB)
|
18
|
|
Log write I/Os per message (sequential)
|
11
|
|
Database write I/Os per message (random)
|
4.5
|
|
Database read I/Os per message (random)
|
2.5
|
Note: |
|---|
|
The numbers in the preceding table are averages of many servers in production with variances up to plus or minus 30 percent. Extra features, such as journaling and transport rules, also affect the expected I/O per message, and these features would affect the example production numbers provided in this topic.
|

Applying Sizing Guidelines to Your Hardware Design for an Edge Transport Server
After you have your capacity and transactional I/O requirements for an Edge Transport server, you can apply them to a proposed hardware design. For processor and memory configurations, see Planning Processor Configurations and Planning Memory Configurations. When designing an Edge Transport server, it is important to have enough RAM (each message needs 8 or 9 KB of memory) in the system to prevent the temporary caching of queued message bodies to disk.
An Edge Transport server uses an Extensible Storage Engine (ESE) database. It is important for resiliency and best performance to separate the log and database files on their own physical disks in environments where there will be a large queue. In smaller deployments that have lower disk I/O requirements, it may be feasible to place both the transaction logs and the database on the same LUN. The Edge Transport server, like the Mailbox server, requires I/O response times that are less than 20 milliseconds.
It is important to use battery-backed, caching RAID controllers and to run database maintenance nightly. Also make sure that the chosen disk type will provide the right balance of capacity and performance.

Hardware Design Sizing Example for an Edge Transport Server
This example illustrates how to design your storage around the expected messages per second. In this example, there is an Edge Transport server that handles 20 messages per second, requiring 140 IOPS for the database LUN and 220 IOPS for the log LUN. Always add a 20 percent growth factor for disk I/O performance to handle heavier than normal days. The disk layout is RAID10. For the hardware sizing results, see the following table.
Hardware sizing
|
Disks (1) and (2), RAID1 layout
|
Disks (3), (4), (5), and (6), RAID10 layout
|
|---|
|
Operating system and transaction logs 220 + 20% = 264 IOPS
|
Database, protocol, and message tracking logs and antivirus quarantine 140 + 20% = 168 IOPS
|
This example has a database LUN capacity requirement of approximately 70 GB for a week of data. You should double the capacity requirement to 140 GB if you require two weeks of data. Using 146-GB physical disks would allow a LUN of 292 GB in a RAID10 configuration.