System Requirements
VM Note: MailArchiva can run VM environments (e.g. VMWare), however bare metal is preferred. Ensure that sufficient resources are allocated to the virtual machine.
Drive Space Estimates
Adjust no. of mailboxes and retention period in the red cells below to obtain a rough estimate of the drive space required for your organization.
NFS vs ISCSI: In environments where high throughput archiving is needed, the use of sharing protocols (e.g. NFS/SMBFS) for mounting external file systems is not an appropriate choice. Our tests show that archiving performance is at least 50 - 100 percent faster on drives mounted using ISCSI/ethernet vs file systems mounted using NFS/ethernet.
CPU And Memory
MailArchiva is a high-performance, multithreaded application. As a consequence, it will utilize multiple CPU cores where possible.
Memory Note: To make full use of available memory, it is recommended to deploy MailArchiva on a 64 bit operating system.
Storage Guide
* Disk One - SAN / local SAS disks
* Disk Two - SSD / 15k SAS disks
Linux / Solaris Partitioning
We recommend creating partitions for /mnt/index, /mnt/archive and /mnt/data. Thereafter, create symlinks as described below.
- Ensure that the Swap is disabled
- Ensure to install MailArchiva on a 64 bit version of Linux
- There is no need to install Java since it is already bundled with MailArchiva.
Extra Tips For Large Enterprise Environment
These tips apply to deploying MailArchiva in large enterprise environments (>1000 mailboxes):
- Experience suggests we should not recommend the use of Network Attached Storage (NAS) combined with network file sharing protocols (SMBFS/NFS) for archiving purposes.
- We recommend the use of either local RAID or SAN storage with fibre channel
- From a performance standpoint, the use of bare metal servers is preferred.
- Can run MailArchiva inside a virtual machine. However, is not recommended on systems with extremely high load
- If skills are available, we suggest running MailArchiva on Linux, although Windows will do
- We recommend not to enable volume rollover (this can be done manually).
Example: One of our banking sector customers (6000 mailboxes) initially ran MailArchiva in a virtual machine and used a top branded NAS for remote storage. After moving their server to bare metal servers with SAN storage (data) and local SSD (indexes), the performance and reliability of the solution was greatly improved.
The below startserver script is used in a very large installation of
# MailArchiva Enterprise Edition Start Server Script
# Visit http://www.mailarchiva.com for more information on this product
umask 022
MAILARCHIVA_HOME=/opt/mailarchiva
#LD_PRELOAD_64=/usr/lib/64/libumem.so
# tune glibc memory allocation, optimize for low fragmentation
# limit the number of arenas
export MALLOC_ARENA_MAX=2
# disable dynamic mmap threshold, see M_MMAP_THRESHOLD in "man mallopt"
export MALLOC_MMAP_THRESHOLD_=131072
export MALLOC_TRIM_THRESHOLD_=131072
export MALLOC_TOP_PAD_=131072
export MALLOC_MMAP_MAX_=65536
export JAVA_HOME=$MAILARCHIVA_HOME/jre64
export JRE_HOME=$MAILARCHIVA_HOME/jre64
#export LD_PRELOAD_64;
export CATALINA_PID=$MAILARCHIVA_HOME/mailarchiva.pid
export CATALINA_HOME=$MAILARCHIVA_HOME/server
export CATALINA_BASE=/var/opt/mailarchiva/tomcat
export JAVA_OPTS="-d64 -Dfile.encoding=UTF-8"
export JAVA_ENDORSED_DIRS=$CATALINA_HOME/endorsed
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_OPTS="-server -XX:+AggressiveOpts -Dversion=enterpriseedition -Dhardmount=yes -Xms64g -Xmx64g \
-XX:MaxDirectMemorySize=512g -Dgraphdb.cache.size=64 -Dstorage.diskCache.bufferSize=8192 \
-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled \
-XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark \
-XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly \
-XX:+AlwaysPreTouch -XX:-OmitStackTraceInFastThrow \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=8084 \
-Dcom.sun.management.jmxremote.rmi.port=8084 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=10.25.21.75 \
-Xloggc:/var/log/gc-$(date +%Y_%m_%d-%H_%M).log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime \
-XX:HeapDumpPath=/mnt/archive-four/java_pid%p.hprof -XX:+HeapDumpOnOutOfMemoryError \
-agentpath:/home/mgmt_kurakin/yjp-2016.02/bin/linux-x86-64/libyjpagent.so"
export LC_ALL=en_US.UTF-8
ulimit -n 128000
ulimit -v unlimited
bash $MAILARCHIVA_HOME/server/bin/startup.sh
Found this information useful? Visit mailarchiva.com to learn more about MailArchiva.