Chapter 1. Installation Planning

Capacity Planning

The following section is meant to aid in the research, design, and implementation of the messaging system.

Server Performance Considerations

The size of the server(s) is dependent on the user populations assigned to them. There are no absolute rules to apply here. The best approach is to apply some general guidelines in calculating the expected load on the server. It is recommended that one errs on the side of caution by estimating one's load, plus a healthy percentage above that. Use of the facility beyond its capabilities will result in degraded performance. It will never result in denial of service, except at the explicit request of the System Administrator. If the host facility is running, there is nothing in the M-Store software that would result in the denial of service without notification. It is up to each site to determine what level of performance is acceptable and scale their facilities appropriately.

The following is a guideline for scaling the server facilities. The values presented in the guidelines are averages for an M-Store infrastructure that is less than two years old. An increase in the average amount of resources can be expected over time as users send greater volumes of mail, message complexity increases, and new users are added.

M-Store - Message Service

The resources consumed by the Message Service (MS) are dependent on both the active and the total number of users. Typically, active users are approximately 5% of the total user base, and active users are defined as the number of users continually accessing their mailstore. Active users impact virtual memory and CPU usage. The total number of users impacts overall disk space usage. Typically, a single user will consume the following resources:

Memory:

1 Mbyte per active user

Disk Space:

5 Mbytes per user

The suggested layout is:

  • Database on a separate disk from the mail partitions

  • 256 Mbytes minimum to avoid system paging

  • Current CPU class - Pentium

Mailstore performance is most greatly effected by I/O, not the CPU. The only major effect on the CPU is the concurrent number of users creating I/O such as checking, retrieving and sending mail. Additionally, the CPU is taxed in such a case by worker threads. Generally speaking, 10,000 users/CPU will be adequate for maximum performance.

Sendmail Mail Transfer Agent ( MTA)

The M-Store mail transfer agent (MTA) is an enhanced version of the public Sendmail 8.9.3 release. It has been tailored for sites running the IMAP4/POP3 enabled M-Store. The amount of resources required depends on the average number of mail messages being delivered and the peak load level, in other words, enough memory and spool disk space to handle average loads and peaks in message traffic. The average site needs an additional 20 Mbytes of memory for the MTA and 500 Mbytes of disk space for the MTA spool/queue. 500 Mbytes gives enough room for peak loads and to handle any large queues because of outages.

M-Store - Server Component Requirements

A mail server that contains the Sendmail MTA, M-Store and an MSS (Multiprotocol Switching Service) component, with 400 permanent users of which 150 are active at any given time, would resemble the following configuration:

Memory:

256 Mbytes Physical, 512 Mbytes Swap

Disk Space:

3 Gbytes

CPU:

Recent 32-bit class CPU

This configuration can adequately handle peak loads and also includes room for future growth.

Capacity Planning Summary

  • One file per message (similar to traditional usenet news storage)

  • IMAP Mail data kept on a server has a potential to grow, and is constantly changing (unlike POP-based Mail Servers)

  • Numerous relatively inactive concurrent[1] processes

  • Mission critical data backup and protection

Hardware Requirements

This section is an overview of the minimum hardware requirements for the efficient operation of M-Store.

  • A server dedicated to Mail or Directory services.

  • Numerous small disks with data striped across disks utilizing RAID level 5 striping and failed disk recovery.

  • Multiple SCSI controllers to spread I/O across channels.

  • Multiple CPUs typically perform better than a single more powerful CPU, especially if the load of multiple concurrent processes is being run in parallel across the multiple CPUs. M-Store\ runs with many independent processes, which is ideal for multiple CPUs setups. (Note that this is dependent on the OS being used.)

  • Large mail spool area for mail data (that is, 5 - 10 Mbytes per user).

  • Multiple swap partitions on separate disks.

  • Real memory large enough to hold all active processes[2] in memory .

  • Network throughput to support average mail usage. For example, to support 100,000 users delivering an average of 25 messages (each 10 Kbytes) per 8 hour day, one would require an average network throughput of 6.78 Mbytes. The throughput figure was obtained using the following assumptions and formulae:

    Table 1-1. Messaging Usage for Minimum Hardware Requirements

    Assumptions

     

    25 messages sent or received offsite per user (msr)

    100 000 (users)

    10 KB per message sent or received (msize)

    8 hours per day (hrs)

    3600 seconds per hour (shr)

    1024 KB per byte (Kbytes)

    8 bits per Byte (bytes)

     

    Throughput = (users x msr x msize x bytes)/(Kbytes x hrs x shr)

    Throughput = (100000 x 25 x 10 x 8)/(1024 x 8 x 3600) = 6.7MBperSec

Key Server Components

The most important features of a server are:

  • amount of physical memory

  • amount of swap space

  • amount of disk space

  • I/O performance

When planning server capacity, one must take into account the total number of concurrent connections and the total amount of disk space required. The disk usage can be controlled by setting the domain quota and the user quotas, which will limit the amount of space that users are allowed to use for their mail.

Table 1-2. Hard Drive Space Requirements by OS Platform

Platform

/usr/local/md

IRIX 6.5

20 Mbytes

Red Hat Linux 6.0

13 Mbytes

You should allow for at least 100 Mbytes for the mailstore alone; 1 Gbyte is recommended depending on user numbers and the expected number of stored messages per user.

Table 1-3. Important File Locations

File Path

Description

/etc/md/store

Contains the configuration file and the sample boot script; requires 20 Kbytes.

/var/md/store

Contains all data for the message store, and its size depends on the size of
the site and the number of users and messages. 100 Mbytes is a typical minimum size.


Network Requirements

M-Store requires only a network connection and a TCP stack.

Linux Platform System Parameters

The Linux platform requires a change to the system parameters. The default Linux OS configuration disables synchronous meta-data updates in the ext2fs filesystem. This is a serious design flaw that can make it impossible for fsck to recover filesystem data after a system crash. We strongly recommend that Linux sites add the sync option to all ext2fs entries in /etc/fstab. (Reboot the server for this change to take effect.)

Preparation for Installation Work Sheet

The following work sheet summarizes the various settings for the M-Store installation process. Except for the “example only” settings, the default values of all other settings are strongly recommended.

Table 1-4. List of Installation Settings

Data Type Description

Default Setting

Planned Setting

Install Directory

/usr/local/md 

 

Owner

sms (example only)

 

Group

sms (example only)

 

Base Path

/var/md/store

 

Mailstore Partition (This should be on a separate partition from the other ore files.)

/var/md/store/
mailstore

 

Number of Users

10000

 

Directories in the first level (This is available to set during installation only if the number of users entered is 10000 or greater.)

20

 

Directories in the second level (This is available to set during installation only if the number of users entered 10000 or greater.)

200

 

Use Internal Authentication

ON

 

CRAM-MD5

ON

 

DIGEST

ON

 

PLAIN

OFF

 

KERBEROS_V4

OFF

 

GSSAPI

ODD

 

Disable Cleartext Login

OFF

 

IMAP Port (Internet Standard)

143

 

POP Port (Internet Standard)

110

 

httpd Port (Internet Standard) (This is available to set during installation only if it was selected as an install package.)

80

 




[1] Concurrent processes are defined as processes that is running and can be swapped-out. For example, the IMAP process for a person's inbox when the person is not reading mail is typically the state of most processes on a IMAP mail server.

[2] Active processes are defined as processes that are currently in a processing state. For example, the IMAP process for a person's inbox while reading and processing mail or an IMSP process when a person is searching in an address book.