Improving Disk I/O and Overall Performance for your Mail Server, Part 3

In Part One of our series we discussed some tips for setting up your mail server, including tweaks to your operating system and any other software, such as anti-virus, running on your server. In Part Two, we looked at SmarterMail itself and adjustments to items like spam filtering, file attachment sizes and more that can increase overall performance. In this final post, we'll look at hardware settings and some tips for optimizing email clients and mobile devices.

It doesn't even matter if you're running SmarterMail - any mail server will benefit from the various hardware, software and end-user/device mods mentioned. If you're doing some of these already, then you're ahead of the curve. However, read through and see if you can grab one or two more that allow you to squeeze the most out of your mail server performance.

Devices/Clients

Use IMAP and CalDAV/CardDAV for Syncing

IMAP is a time-tested mail delivery protocol - it's fast, it's reliable and every device and email client supports it for retrieving incoming messages. Therefore, it's the best choice for syncing with any email account on any device or desktop client. While things like Microsoft Exchange ActiveSync (EAS) and Exchange Web Services (EWS) are a bit more robust in what they sync, they can be server-intensive. EWS is something to really review before it is implemented as it's currently only available for Apple clients like Apple Mail and Outlook for Mac and doesn't support syncing mobile devices. Further, Outlook users should really only sync their Inbox and not all folders. By default, setting up IMAP will sync all folders. However, syncing just the Inbox is the most efficient setup as folders can be synced "on demand," or whenever a user clicks on it. This way, only the access that is needed is what's being set up and processed with the mail server.

For customers concerned about syncing contacts and calendars, using the CalDAV and CardDAV protocols are great for syncing these items. This is especially true now that Windows Phone is rolling out support for both, and even Google started offering native support for both and deprecated EAS support. Android and iOS devices currently support both CalDAV and CardDAV (iOS natively supports it - Android devices do require third-party apps), so most users will get along just fine using them. Finally, IMAP, CalDAV and CardDAV are all free to use - no additional costs for service providers or end users, and while Android devices currently need third-party apps, most, if not all, are available for free. Therefore, IMAP, CalDAV and CardDAV are truly ideal alternatives for most customers. If you want to use something other than IMAP, CalDAV and CardDAV, EAS is the way to go as it is becoming the de facto standard for syncing both mobile devices and desktop clients.

Sync Devices For a Maximum of 30 Days

On many mobile devices you can set the default time frame for syncing messages. Most people want to have as much mail on their phone as possible, but that's not always the best solution as syncing a ton of information with a mobile device can cause issues, both on the phone as well as on the mail server itself. These issues can not only cause delays in receiving new messages but also issues with lost emails, high disk i/o and more. Therefore, it's best to sync just a few days' worth of email and calendar items. The maximum should be 30 days, but a better solution is 5 days or less. Since SmarterMail offers a Web-based interface, even road warriors can get by with just a few days' worth of email and calendar items - they simply need to log in to their mail account using any Web-connected browser to see the rest.

Keep Mailboxes Small

This should go without saying, but keeping your inbox uncluttered is a great way to ensure your mail server performs well. Large mailboxes are very difficult to manage, especially when using products like Microsoft Outlook as they download EVERYTHING.

So, how can you keep a mailbox small and things working smoothly? Well, first of all, SmarterMail Enterprise offers email archiving. When used, archiving stores every email as it enters the spool. Therefore, even if an user deletes a message, a system or domain administrator can retrieve it and replace it for the user as needed. In addition, archived messages can be stored on a different drive, further saving space and disk i/o.

In addition, when syncing with a mobile device, it's not necessary to sync every folder a user has. If only the Inbox is synced, and only a few days' worth of email is synced, then the mail server and device will remain in harmony.

Another thing to avoid is creating sub-folders within your Inbox. Many clients, especially Outlook, don't handle folders within a user's Inbox very well. Mobile clients perform even worse when a user has sub-folders in their Inbox. Therefore, it's best to avoid them whenever possible.

Try to live by the Inbox Zero rule and manage messages rather than letting them sit. Delete, file, store and remove as much as possible and your email clients, servers and mobile devices will perform much better.

Remove Large Attachments

As we noted in a previous post, disk space availability and usage can impact the performance of your mail server. A possible way to avoid this is to either set up some auto-clean rules for your emails or just flat out delete any large attachments. Of course, an alternative to deleting attachments is to move them off the mail server and to a local drive for later retrieval - maybe move them to a Google Drive or Dropbox account so they're still available for mobile users, but not cluttering up the mail server itself.

Server Hardware

Separate Your Spool and Data

A great way to increase your mail server performance is to separate your email spool and email data into 2 separate, physical drives. This is because your spool, especially on busy mail servers, will see constant reads and writes, which will impact disk i/o. In addition, email data can grow, especially with attachments, file storage, etc. Increased disk space combined with constant reads/writes can be a recipe for disaster for a mail server. Separating these functions (along with the other suggestions discussed) can lead to longer lifespan for your disks, and less chances for corruption, downtime and headaches.

Use SSDs

This may go without saying as SSDs are generally faster than standard hard drives, but it's worth pointing out nonetheless. SSDs are great for mail servers due to the increase in performance. Sure, they cost more, but the performance increase that a mail server admin will see, as well as their overall durability, is well-worth the investment. In addition, there may be some concerns over the lifespan of SSDs in a high-production environment. However, implementing some of the other suggestions in this post can lengthen the lifespan of your SSDs, making them not only affordable but a real difference-maker.

RAM Drive for Spool

A RAM drive (a.k.a., a RAM Disk) offers a huge increase in performance, even over the use of SSDs. Most people use RAM drives for loading applications and running things like games or photo-editing software, so using a RAM drive for your email spool means that messages are handled much, much faster than when the spool is part of your normal drive set. There are some disadvantages to using RAM for storage, most significant are that the size is limited to the RAM on hand and RAM drives are dependent on the server staying powered up and online. Then there is the need for third-party applications to manage the drive. However, these are minor headaches compared to the overall performance gains. For more information on RAM drives, PC World has a good article on supercharging your server using a RAM drive.

Raid 10 for Data

Scalability and reliability are crucial factors for any mail server. As anyone working for a hosting provider or ISP can tell you, nothing riles up customers more than when their email is down. Most people can handle when their website is having issues, but even a minute of downtime for a mail server can bring the most patient customer to tears. Having redundancy and failover in your hardware can ensure that, even if you lose a drive, customers see very little downtime, IF they see any at all. RAID 10 offers a simple and relatively cheap way to give your mail server a high level of reliability without sacrificing any speed.

Lots of Memory in the Machine to accomplish these items above

Use of a RAM drive and other suggestions means that your mail server will need enough RAM to be able to handle any situation. 8GB or more seems to be the norm nowadays, especially as RAM prices decline, 16GB being a sweet spot for most mail server admins. Of course, it all depends on load, number of users and how users interact with the mail server. Getting some baseline statistics on memory and disk usage using your mail server's reporting features or from the server itself is a good place to start. SmarterMail offers system administrators some reports that detail disk and memory usage, as well as user trends and summary reports. Windows offers native reporting tools that can be used as well.

So, there you have it - three blog posts detailing how you can improve the overall performance of your mail server. Of course, these suggestions just touch the surface. I'm sure there's more that can be done, so if anyone has any suggestions, feel free to leave them in the comments. Thanks for reading!