Baseline Performance for IMAP4
This section provides baseline performance data on Internet Message Access Protocol version 4rev1 (IMAP4) servers. IMAP4 is an Internet protocol that allows an IMAP4 client to download e-mail from a server. This protocol works well for computers that can maintain a continuous connection to a server. IMAP4 offers more features than POP3, including folder hierarchies, flags, and searching.
IMAP4 Front-End Server
This scenario measures how well IMAP4 scales on a four-processor Xeon MP with Hyper-Threading server. Different levels of load are run against the server.
Hardware
The following table shows the specifications of the five servers used in this scenario.
IMAP4 front-end hardware configuration
Server type | Processor type | RAM | Storage |
---|---|---|---|
Front-end server |
Intel P4 Xeon 2 processors, 2.6 GHz (Hyper-Threading) |
1 GB |
|
Four back-end servers |
Intel P4 Xeon 8 processors, 550 MHz |
4 GB |
|
Scenario
An average message size of 26 KB is sent. Each user's Inbox is populated with 31 IMAP4 messages before the test begins. Transport traffic occurs as incoming SMTP mail for local delivery at a rate of 24 messages per second.
The following table provides an overview of the IMAP4 traffic that can be handled by a single two-processor 2.6-GHz front-end server with a range of back-end servers. The IMAP4 UID/sec rate counter measures the number of unique ID (UID) commands received by the IMAP server per second. This counter is a good measure of the overall number of IMAP4 transactions occurring per second.
IMAP4 front-end server performance
IMAP4 front-end server | Back-end server 1 | Back-end server 2 |
---|---|---|
% Processor Time |
25.4% |
47.3% |
Context Switches /sec |
41,945 |
39,781 |
IMAP4 UID/sec |
436 |
2,084 |
IMAP4 Connections |
15,000 |
30,000 |
Network Usage (in Kbps) |
4,628 |
5,108 |
Inetinfo Working Set |
221 MB |
387 MB |
For more information about the performance counters used in this scenario, see Performance Counter Definitions.
Processor
An Exchange 2003 front-end server that only services IMAP4 clients does not use much CPU. The table above shows how 15,000 concurrent IMAP4 users consume only 25.4 percent of available CPU.
IMAP4 is most efficient when running on a two-processor front-end server. Like POP3, IMAP4 begins to context switch too much under moderate load on four-processor front-end server. Subsequently, it is not recommended that you run an IMAP4 front-end server on hardware that has more than four processors.
Memory
Like POP3, IMAP4 does not require much physical memory; 256 MB of RAM is sufficient for IMAP4 front-end servers that are servicing fewer than five back-end servers. If your front-end server services more than five back-end servers, you must have 512 MB of RAM installed on your front-end server.
Disk Usage
For information about disk usage for a dedicated IMAP4 front-end server, see "Disk Usage" in "POP3 Front-End Server" in Baseline Performance for POP3.
Network Usage
An IMAP4 front-end server uses many network resources when servicing multiple back-end servers. The minimum network requirement of a high-end IMAP4 front-end server is a single 100-Mbps network adapter running full duplex. Depending on the type of users accessing the system and the number of back-end servers being serviced, it may be necessary to add an additional 100 Mbps to each network adapter, or move to a gigabit-based network.
Network Load Balancing can also be used to balance the client load across multiple IMAP4 front-end servers.
IMAP4 Back-End Mailbox Server
This scenario compares how well IMAP4 scales on a four-processor Hyper-Threading Xeon MP server. Different levels of load are run against the server.
Hardware
The following table shows the specifications used in this scenario.
IMAP4 back-end server hardware
Server type | Processor type | RAM | Storage |
---|---|---|---|
Back-end |
Intel P4 Xeon 4 processors, 1.4 GHz (Hyper-Threading) |
4 GB |
|
Scenario
An average message size of 26 KB is sent. Each user's Inbox is populated with 31 IMAP4 messages before the test begins. Transport traffic occurs as incoming SMTP mail for local delivery at a rate of 24 messages per second.
The following table shows how an IMAP4 back-end server performs under various user loads.
IMAP4 back-end server performance
5,000 IMAP4 users | 15,000 IMAP4 users | 20,000 IMAP4 users | |
---|---|---|---|
% Processor Time |
35.3% |
57.2% |
71.7% |
Context Switches/sec |
22,929 |
50,565 |
46,978 |
SMTP Messages Del/sec |
23.7 |
23.9 |
23.5 |
SMTP Local Queue |
8.6 |
38.3 |
32.9 |
IMAP4 UID/sec |
542 |
961.2 |
1,055 |
DB Disk Transfers/sec |
870 |
1,304 |
1,921 |
Network Usage (in Kbps) |
1,844,838 |
1,986,082 |
2,318,340 |
For more information about the performance counters used in this scenario, see Performance Counter Definitions.
Processor
IMAP4 scales well on a four-processor back-end server. When determining the appropriate hardware for your IMAP4 back-end server, realize that the disk I/O operations increase as the average user's number of Inbox messages increases. The following figure shows as the user load increases, processor usage scales within an acceptable range.
IMAP4 back-end server CPU usage
Memory
The four-processor IMAP4 back-end servers require at least 500 MB of RAM. Exchange uses a maximum of 3 GB of memory. To increase performance, increase memory to 3 GB to reduce the paging to disk.
Disk Usage
It is recommended that you have at least 2 RAID1 spindles for the log drive and at least 10 RAID0+1 spindles for the database files to support about 8,000 users. You can add a spindle for each additional 100 disk I/O operations expected. The more users you add to your server, the less likely a user will be cached and the more likely disk usage will increase. Because your disk subsystem is the first bottleneck on an IMAP4 back-end mailbox server, make sure that the Current Disk Queue Length performance counter stays below 10 (or n, where n equals the number of spindles in the array).
Network Usage
A single 100-Mbps, full duplex, network connection is sufficient for almost all IMAP4 back-end applications.
IMAP4 Scalability Guidelines
When you design an IMAP4 server, consider the following recommendations:
An IMAP4 front-end server scales well to a two-processor front-end server.
Use a ratio of one IMAP4 front-end server to eight back-end servers.
An IMAP4 front-end server requires a minimum of 256 MB of RAM. However, if you are using a front-end server that services more than five back-end servers, use 512 MB of RAM.
An IMAP4 front-end server uses virtually no disk resources, unless the front-end server is paging or IMAP4 protocol logging is turned on.
A single 100-Mbps full duplex network connection is sufficient for all but the most demanding front-end server applications such as environments where large message attachments are common. Depending on the type of users you plan to service and the number of back-end servers being serviced, it may be necessary to add an additional 100-Mbps full duplex network adapter or move to a gigabit-based network.
An IMAP4 front-end server can be load balanced using Network Load Balancing.
SSL connections generate a 50 percent increase in CPU activity, and they require an additional 10 percent of physical memory.