Recommended Hardware Configuration

Mailboxes: 1000

approx. 1 million emails archived every 6 months

Intel Dual-XEON, 1 GB RAM

index -Fast SATA or SCSI hard disk (WD Raptor/Seagate Cheetah)

archive locally attached RAID 5 disk array

Note: In large environments, we recommend installing MailArchiva on a 64 bit operating system.

Note: If you find that MailArchiva is not keeping up with the traffic passing through your journal account, simply increase the amount of memory allocated to the server and increase number of archiving threads in the General tab as described below.

Performance Insights

Maximizing Archiving Performance

(1) Increase Amount of Memory

In high volume environments, the system will become unstable and archiving will stop if there is not enough memory allocated to the MailArchiva server!!

Please make sure that MailArchiva is configured to take full advantage of the amount of RAM installed on your server.

See OutOfMemory for instructions on how to allocate more memory to the server.

(2) Increase the number of archiving threads

For sites larger than 500 mailboxes, you will absolutely need increase the number of archiving threads. Typically, a 500 user site will require at least 20 archiving threads. In increasing the number of archiving threads, you will need to increase the amount of memory allocated to MailArchiva.

In the General tab of the configuration screen, bump up the number of archiving threads to 20 or so.

Beware if you increase the number of archiving threads too much, your server will run out of memory and cause system instability!

(3) Increase maximum messages to process in Journal Accounts tab

(4) Set Polling Interval to ZERO in Journal Accounts tab

(5) Experiment with turning off IMAP Idle in Journal Accounts tab

This is not need on low volume sites. The use of Imap idle will lower the amount of traffic on your network.

(6) Run Multiple Archiver Processes on Different Boxes

MailArchiva Enterprise Edition has the capability to run MultipleArchivers on different boxes. This helps to spread the load across multiple servers. It is also useful to reduce the contention between search and archiving.

(7) Use Locally Attached / Fibre Channel Storage

Its always better to use locally attached storage. You might find that your Ethernet cable is the bottle neck. MailArchiva can only ever be as fast as the time it takes to write to the storage device. If you are writing over a network, you are limited to the width of the ethernet pipe. If you have high performance needs and you require write over a network, consider using Fibre Channel controllers.

(8) Use SMTP Server

MailArchiva's SMTP server is a high performance server that employs non-blocking sockets. If performance is a real concern, its far better to use SMTP to forward emails to MailArchiva. MailArchiva's SMTP is very efficient and can handle very high loads.

Maximizing Search Performance

There are a few things to consider when attempting to maximize search times:

(1) Store your searches indexes locally (not on a networked drive)

The indexes are accessed extensively during searching. Thus, any latency in network/disk IO will seriously affect search performance. That being said, the performance penalty of keeping the archives on network drives is minimal, as the emails in the archives are typically accessed during archiving or retrieval (not searching). Thus, we recommend storing your index locally and archives on a remote NAS/SAN disk disk.

*(3) Set Max Search Results in the General tab to 10,000 or less. If its over 100,000 search will slow dramatically.

*(4) If you're archiving via IMAP or POP, make sure that the polling interval is not set to zero.

(5) Turn off sorting. You'll get a x16 performance improvement by switching off sorting in the General tab.

(6) Setup automatic monthly creation of new volumes and enable search on archive date only in General tab

This is an especially good tip for large sites using the Enterprise Edition! When users search using archive date, MailArchiva will only search the volumes that it needs to. Thus, if you have three volumes for (A) January, (B) February and (C) March. If you search between the 1st January and the 28th February, MailArchiva will only search Volumes (A) and (B). By enforcing the policy that there can only ever be one active volume for indexing/archiving at a time, the software ensures that volumes are cotinguous i.e. that there is no date/time overlap between volumes.

(7) Increase Amount of Memory

You server needs lots of memory to be able to search through millions of documents. This is particularly true if max search results is set to a large value.

Please make sure that MailArchiva is configured to take full advantage of the amount of RAM installed on your server.

See OutOfMemory for instructions on how to allocate more memory to the server.

(8) Select "Read index once per session" in General configuration options

This causes the search engine to cache the results across searches and improves search time significantly.

(9) Store your indexes on separate hard disks.

A concurrent search will run much faster if the indexes associated with each volume are on different hard disks.

(10) Store you indexes on a fast disk

Optional - but very nice to have!

Here's an idea: Use a solid state storage disk (SSD) for storing the index. As seek-times for SSD's are about 100 times faster than traditional platter-based harddrives, the usual penalty for seeking is virtually eliminated.

(11) Unmount older volumes.

Unmounted volumes are not searcheable. MailArchiva will search all configured volumes except those that are unmounted or ejected.

(12) Set the maximum return search results to 10000 in server.conf

(13) Do not index attachments.

Set "index.attachments=no" in server.conf.

(14) Do not index message bodies.

Set "index.messagebody=no" in server.conf.

Topic revision: r26 - 2009-09-22 - 05:58:15 - JamieBand
 
Copyright (c) 2005-2010 Stimulus Software