Many a times, we get trouble tickets, announcing that the Mithi mail server has slowed down and is exhibiting high CPU utilisation and load. The server would also exhibit a high I/O wait, which in turn causes higher load averages and also impacts CPU use. But what then causes high I/O wait. On closer inspection it turns out that the POP service is hovering on “top” is taking longer than normal to process requests. So why is that? POP is visibly the fastest responding service and even during peak times the concurrency used would not cross 10 connections. The core cause is that POP requests for large inboxes (POP with leave copy configured in the clients) are taking very long to complete and also loading up the I/O since the POP client has to compare a big list of emails already downloaded with a big list of mail in the server Inbox to determine what to download (or not to download). This happens for every pop connection and grows progressively slower since more and more mail are collected in the inbox. After a certain threshold, the server exhibits performance bottlenecks which are felt by most of the users. This is easily solved by reducing the size of the inboxes for all such users (delete mail older than 7 days and move it to a personal folder). While the overall size of the storage hasn’t changed, the size of the Inbox is what matters for POP requests.
POP stands for Post Office Protocol and is a simple set of instructions that let your email client retrieve messages from the mail server. The POP client asks the server if there is any new mail, and if your mailbox on the server has messages, then POP usually downloads them to your computer and deletes them off the server.
IMAP stands for Internet Mail Access Protocol and allows a “client” email program to access a message stored at a remote location as if they were on the local computer. Email stored on an IMAP server can be manipulated from a desktop computer at home, a workstation at the office, or a notebook computer or mobile device while traveling, without the need to transfer messages or files back and forth between these computers.
Modern email usage scenario
- Most users now access their mail using different methods and from different locations as per convenience i.e. mobile devices, desktops and browser. They would like to see the same view of the mailbox (including sent items, drafts and other personal folders) from any device.
- Users would like to organise their mail into folders.
- Users don’t want to be concerned with the backup and management of the mailbox.
Limitations of POP
POP is essentially an older protocol, which runs into the following limitations in todays scenarios
- POP clients only understand the presense of the Inbox folder on the server. It cannot download mail from the other folders.
- Once a mail is POPped of the server, it is usually deleted unless the user chooses to leave a copy of the mail on the server. The same mail is now not visible from the web client or any other client.
- Mail sent from POP clients, stay on the client and are not synced to the server’s sent items. Similarly if a mail is sent using the web client or mobile, the sent mail are not visible in the desktop pop client.
- Many users who choose to leave a copy on the server infinitely, progressively experience a slower POP response since the POP client has to compare a bigger and bigger list to decide what mail to download.
- A large Inbox, which is being accessed from POP also loads the server I/O and reduces the server response. This is normally not a visible cause during troubleshooting of performance issues.
Verdict: Essentially using POP ensures that you will get an inconsistent experience if you access your mailbox from different clients. POP (without leave copy or leavy copy only for a limited period) is best suited in situations where the user is base stationed and uses only one device for accessing mail and agrees to maintain the mail which have been downloaded (backups, etc).
Success of IMAP
IMAP is a modern protocol which
- Allows parallel multiple client access by ensuring that the server mailbox is in sync with all the IMAP clients connecting to it.
- Mail sent from any client/device are synced to the sent items on the mailbox on the server. This ensures that the sent items are now visible to all clients.
- Is resource efficient, since it syncs incrementally only the new/changed mail.
- Allows the mail backups etc to be managed centrally at the server level. In case of a client crash, the mailbox can simply be resynced to the freshly built or new client.
Verdict: To allow users to have a consistent and uniform experience, when they access their email from different devices and locations, it is advisable to use the IMAP protocol.
Additional Note: A combination of personal archival to store old mail and IMAP for the live mail access is the best solution for easy mailbox management and also provides end users the security and safety for their data. The IT team of course has to work harder to deploy sufficient storage and establish systems to ensure availability of the storage.