Isode's IMAP/POP server, M-Box, was written with very high performance and scalability targets in mind. In order to judge our success in meeting these targets the product has and continues to be tested against a wide basket of commercial and open source alternatives.
This whitepaper gives performance numbers of M-Box using the Mstone industry standard benchmark and provides reference comparison with a number of widely used IMAP servers. This paper looks at single server performance ("vertical scaling").
We have used a widely available industry standard benchmarking tool and published our test configuration in order to encourage evaluators to conduct similar tests themselves. As with all Isode products we actively encourage evaluations of M-Box and will make support resources available to assist your evaluation.
Benchmarking: Why we used Mstone
Mstone is an industry standard stress and performance measurement tool, it runs on Linux, Solaris, AIX, OSF, HPUX, and NT, is free and available here. Our choice of Mstone, apart from the comprehensive nature of its reporting, was governed by our desire to make these tests repeatable by evaluators with no additional investment. It also provides vendor independent test selection, making it clear that we have not selected tests oriented to M-Box's capabilities.
Benchmarking: Our reference choices
We have chosen to use a number of popular Open Source products as references for M-Box performance. There are a number of reasons for this:
- The implementations are generally available and tests can easily be repeated by others.
- It is straightforward to test all products in exactly the same environment ensuring a level playing field.
- IMAP is popular in the Open Source community and these are considered to be good and stable implementations.
- Evaluation licences for commercial products prohibit the publication of test results.
The following implementations were chosen:
- Cyrus: though not renowned for it's horizontal scalability, Cyrus is recognised high-end open source product used as the base for a number of commercial implementations
- Courier: Popular with service providers, Courier provides horizontal scaling using a shared filestore and allowing multiple servers to be added 'transparently'. This approach, giving a substantial administrative benefit, is also used by M-Box, making it a good comparison product.
- UWash: Another popular IMAP server, UWash, like Cyrus, is not renowned for its ability to scale horizontally but is widely viewed as being very stable.
- Dovecot: A relatively new implementation, gaining in popularity.
Both UWash and Cyrus are considered to be IMAP reference implementations, they have relatively strict adherence to the IMAP protocols and are often used by authors of IMAP client software to test against.
Test System and Configuration choices
All products were built on the same server using the same compiler. Default install choices were selected for all products. The test system specifications were:
- Operating System: Gentoo Linux 2.6.13
- Memory: 1 Gig
- CPU: Pentium(R) D CPU 2.80GHz GenuineIntel (Dual Core) CPU
- Disk: WD Raptor SATA 10K
- Compiler: gcc 3.3.5
- Thread model: posix
- File-system: reiserfs
The tests simulated multiple clients accessing each of the servers (for these tests we chose simulations of 100, 500 and 1,000 clients) and recorded all performance measures relevant to the access.
M-Box performed excellently across the board as you'll see from following the links to the detailed test results below each set of graphs. For the purposes of this paper we've presented summary results that illustrate the number of transactions attempted over the 5 minute period of each test, the number of errors generated by those transactions and Gigabytes read during the test period.
As expected all products performed reasonably well when subjected to low (100) simulated client loads, although there is a a significant difference in the number of attempted transactions even at this level with Dovcot performing particularly poorly.
Many of these transactions could just be simple searches, however the 'Gigabytes Read' graph shows that M-Box is doing more 'real' processing work than any of the other systems, with only Cyrus approaching it's performance.
As the simulated client load increased to 500, the performance differences between M-Box and the other systems under examination became more pronounced, particularly with regards to errors. All the errors result from a read, write, or connect timeout of 60 seconds. In practice this means that the client (user) was unable to login and was denied service.
M-Box shows only a moderate reduction in overall transaction rate from 100 connections and operates comfortably with this level of connections. The level of errors with the other IMAP servers suggests that they are unable to provide a satisfactory service at this load level.
The figure for errors become particularly pronounced at 1000 simulated clients with M-Box maintaining a zero error level across all simulated client loads.
The other IMAP servers are refusing a significant percentage of connections at this load and are well beyond viable operational load. We estimate that at this loading, Cyrus was only providing a service to about 600 of the 1,000 clients. Whilst M-Box's overall transaction performance dropped between 500 and 1,000 active connections it was still operating at a more than satisfactory level for a server of this size and the Gigbytes Read chart shows that it was handling substantially more real processing work thn any of the other systems. Of particular note is that it supported all of its connections without error.
Inbound Message Performance
The figures shown so far relate to client access to the IMAP Server (getting messages out). For overall performance, getting messages into the IMAP Server is also important.
Some IMAP Servers have messages written to a mailbox format by the associated Message Switch. Courier, Dovecot and UWash servers all work in this manner. Delivery performance for these servers is primarily a function of the associated Message Switch (generally, there is a choice of Message Switch that can be used with the IMAP server) so this measurement is not appropriate for this paper, which is considering the IMAP server.
Cyrus and M-Box support direct delivery, using LMTP (Local Message Transport Protocol). Delivery performance was measured for 1,000 4 kbyte messages, for these two servers.
The significantly lower delivery time for M-Box illustrates one of the advantages of using a relatively simple file store aligned mailbox format.
These tests have illustrated the scalability of M-Box compared with popular IMAP alternatives. The performance of M-Box is consistent over all the loads levels tested, efficiently sharing available resources amongst all the active users.
M-Box performs particularly well with regards to errors with no timeouts at any test load.