Basic Performace Statistics

From MailWasher Server

Benchmarking the MailWasher Server Process

Introduction

This document investigates the effect that the Firetrust MailWasher Server product will have on the performance of an existing mail server. It concentrates on the ability to receive mail messages from the outside world, to deliver them within an organisation, and the added load to system resources that is imposed on the mail server.

Test Environment

All tests described in this document are run on the same hardware platform, in the same environment.

1. The Originator. This comprises a bespoke mail client whose sole purpose is to deliver mails as quickly as possible. So, there’s no fancy stuff here at all. If thew server decides not to accept it for any reason, it just goes on processing.

2. Communications Infrastructure. Client and server are connected via a 100Mbit network running at full duplex. This ensures that there is no possibility of a lack of bandwidth skewing the results.

3. The Recipient. This machine has a removable hard disk, allowing for different configurations / operating systems to be compared on a level playing field.

The client machine for these tests is a Sun V120 server, running Solaris 9. The mail client has been written in C, and is run many times in parallel to ensure a heavy load on the server. The light load that this places on the Sun server ensures that there is no skewing of the results due to a shortfall in resources on the client end.

The server machine is based on industry standard Intel hardware. A 3.0GHz hyperthreaded Pentium P4 CPU, with 512MB of memory, and an 80 GB SATA disk is used to support various versions of linux and Windows Server 2003. The relevant mail servers from Exchange 2003, Sendmail and Qmail are used to receive messages.

The delivery of mail can be thought of as being in two separate modules. First, the incoming message needs to be accepted by the mail server, and then this message needs to be delivered locally to the final recipient. Both the performance of the external mail receipt and the local delivery are monitored in this benchmarking. The choice of backend mail store can greatly affect the speed of local delivery, so the poorest performing option is used.

All benchmarking is necessarily an artificial look at what will happen in reality. No attempt has been made to model real world loadings, rather the aim has been to provide worst-case scenarios. To this end, no attempt has been made to tune the mail server (other than reducing constraints to allow this abnormal load to run in the first place), so it is hoped that real time performance will always be better than these results.

As the client’s mail server hardware will vary greatly, these benchmarks strive to provide an indication of the extra load and performance degradation caused by the installation of the MailWasher Server software on and existing mail server platform.

Static Test Conditions

For each configuration, three x three tests are performed. Mails with a payload of 1k, 10k and 100k are sent to a mail server configured with MailWasher Server accepting all or half the incoming mails, with a check run where MailWasher Server is disabled. Each test is run 3 times, and the results averaged.

The client Sun server is configured to run 50 mail clients concurrently, each sending a total of 200 emails, so 10,000 emails are send in total for each test. Each mail client sends to 5 email addresses on a round-robin basis.

Test Results

1. Debian Linux / Sendmail v.8.13.1

By default, the sendmail server is configured to connect only a maximum of 10 processes concurrently, so the loads used to stress this configuration should never be encountered in the real world.

Email SizeSpam LevelAcceptedEmails/secDeliveredEmails/sec
1KB0%04:4535.104:4834.7
1KB50%07:4121.707:4721.4
1KBDisabled01:5984.005:0432.9
10KB0%04:5633.806:3429.9
10KB50%05:2930.405:4029.4
10KBDisabled02:1872.506:1726.5
100KB0%05:3230.115:3910.6
100KB50%08:5418.712:3913.1
100KBDisabled02:5955.612:0513.8

Taking the worst case statistics from the table above, email acceptance can be degraded by up to 4 times, but the complete email delivery process by approximately 50%. The degradation in acceptance speed can be thought of as a hit on the ability to handle short-term loads, whereas the latter figure is the performance loss in real terms.

2. Microsoft Windows 2003 / Exchange 2003 / Outlook POP3 clients
[Due to the system performance, the number of messages delivered has been dropped from 10,000 to 1,000… the first trial took 28 minutes to deliver the mail, and over 2 hours to deliver it locally!]

With these benchmarks, it should be noted that the configuration of SATA disk and 512MB memory causes a major disk bottleneck which affects the delivery times of the larger emails.

In an attempt to compare like with like ( well, fruit with fruit at least ), I have set up an exchange server with 5 email addresses, and I’m looking at these through a single outlook 2003 client using pop3 clients.


Email SizeSpam LevelAcceptedEmails/secDeliveredEmails/sec
1KB0%00:5219.206:062.7
1KB50%00:4920.404:074.0
1KBDisabled00:5318.706:022.8
10KB0%00:5318.706:252.6
10KB50%00:5219.205:043.3
10KBDisabled00:5219.206:262.6
100KB0%01:2012.515:081.1
100KB50%01:0914.509:251.8
100KBDisabled01:1912.713:511.2

The difference in internal design can clearly be seen when comparing the variance in delivery rates between this architecture and that of Linux/Sendmail. The acceptance rate of emails with the Exchange Server receiving the mail shows no difference whether the MailWasher Server conduit is installed or not, and there is a barely noticeable ( less than 10%, and unlikely to be statistically relevant, given that each test was only repeated 3 times ) difference in the delivery time to the ultimate recipient.

3. RedHat Linux 9.0 / qmail 1.05

By default, the qmail server is configured to connect only a maximum of 20 processes concurrently, so the loads used to stress this configuration should never be encountered in the real world. The server was reconfigured to accept the 50 processes loading the system.

Email SizeSpam LevelAcceptedEmails/secDeliveredEmails/sec
1KB0%03.1451.506.3825.1
1KB50%09:4817.009:4817.0
1KBDisabled01:09144.905:3529.8
10KB0%03:1850.507:0723.4
10KB50%11:5913.911:5913.9
10KBDisabled01:12138.906:0723.4
100KB0%04:2138.315:0911.0
100KB50%17:059.817:059.8
100KBDisabled02:2170.916:0210.4

Taking the worst case statistics from the table above, email acceptance can be degraded by up to 10 times, but the complete email delivery process by approximately 50% The degradation in acceptance speed can be thought of as a hit on the ability to handle short-term loads, whereas the latter figure is the performance loss in real terms.


Conclusions

Although this study is in no way an attempt to model real life, it is an attempt to investigate a ‘worst case’ scenario, and get a feel of how MailWasher Server affects the characteristics of a mail server.

The Windows/Exchange installation seems to require more powerful hardware to support the main server function, and disk access bottlenecks masked any potential performance cost that MailWasher Server has.

The linux based installations show a considerable degradation in the ability to accept emails. This will show itself as a lower ability to accept a short term load of incoming emails. However, when measuring the complete email delivery, which includes local deliver to the users’ mailbox, then the performance is cut by about 50%.

The filtering of emails was performed using the statistical analysis feature. When this actually has to quarantine an email, it seems to add a significant delay to the delivery of mail, and this may need to be addressed in the future.

To put the above figures into perspective and taking the worst case delivery rates, the ( unrepresentative ) windows performance relates to over 100,000 emails/day ( or 10GB ), and the equivalent linux figure is over 800,000 emails/day ( or 80GB ). It would take a pretty large company to have a problem with a drop from 200,000 to 100,000 emails per day.