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

  • Not applicable

Four back-end servers

Intel P4 Xeon 8 processors, 550 MHz

4 GB

  • 12 spindles of RAID0+1 for database volumes

  • 2 spindles of RAID0+1 for the transaction logs for each storage group

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

  • 12 spindles of RAID0+1 for database volumes

  • 2 spindles of RAID0+1 for the transaction logs for each storage group

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

4fbee93f-93d1-4d49-9b20-10c3317a472a

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.