[horde] Bottleneck ? CPU or HDisk IO or RAM
Andrew Morgan
morgan at orst.edu
Thu Feb 5 01:34:01 UTC 2009
On Tue, 3 Feb 2009, Linux Advocate wrote:
> Andy,
>
> A. supposing its two boxes of Dual Core Dual Xeons, 8GB RAM and 7.2k rpm
> 750 GB SATA disks ( 6 or more ) in a RAID10, i.e one for horde, one for
> imap/pop/webmail ,will the 7.2k rpm sata drives cut it ? since imap is
> hard disk i/o intensive ( as mentioned in one of the posts here ) ?
It is very hard to know how well it will perform. It depends a lot on how
Dovecot (I think you said Dovecot) works. I have experience using Cyrus,
but not Dovecot. With Cyrus, there are message files which are
infrequently accessed and require very little performance (SATA on RAID5
would be fine). There are also metadata files (indexes, cached headers,
etc) which are read and updated constantly. The metadata files should be
on high-speed disks (10k or 15k rpm) in RAID1 or RAID10.
You can make some rough guesses by thinking about how IMAP works and what
your users will do:
1. New mail is received - message must be written to disk, metadata
updated.
2. Mailbox is opened - metadata files must be read to obtain the list of
messages and the message states.
3. Message is read - message file (and possibly metadata files) must be
read. Seen state in metadata must be updated.
4. Message marked as deleted - metadata must be updated.
5. Mailbox purged - metadata updated and message files deleted.
Those are the most common things your users will do. If you can make an
estimate of how often these will happen, you can also estimate how many
I/O's Per Second (IOPS) you need. Once you know your IOPS requirements,
you can determine how many disks you'll need as RAID10 and how many disks
you'll need as RAID5.
Generally, a single disk drive can do this many IOPS per disk:
15k rpm: 180-210 IOPS
10k rpm: 130-150 IOPS
7200 rpm: 80-100 IOPS
5400 rpm: 50-80 IOPS
In a mirrored configuration:
Disk IOPS = Read IOPS + (2 * Write IOPS)
In a parity (RAID5) configuration:
Disk IOPS = Read IOPS + (4 * Write IOPS)
For example, if you estimate that you need to support 40 Read IOPS (40
reads/sec) and 80 Write IOPS (80 writes/sec):
(mirrored)
40 r/s + (2 * 80 w/s) = 200 Disk IOPS
Using 7200 rpm drives, you need: 200 / 50 = 4 disk drives
(parity)
40 r/s + (4 * 80 w/s) = 360 Disk IOPS
Using 7200 rpm drives, you need: 360 / 50 = 7.2 disk drives
And you can recalculate based on faster drives if you want to know the
results for 10k SAS drives, etc.
> C. What hardware do u use and how many users do u handle?
See http://onid.oregonstate.edu/docs/technical/servers.shtml for a
listing. Specifically, look at the Mail, Webmail, and MySQL server
sections. We have approximately 10,000 unique Webmail users in a given
day and a total user population of about 30,000 active accounts.
It is a lot easier to start from a working system and plan upgrades,
rather than planning for a new system where you can't measure the
workload. :)
Andy
More information about the horde
mailing list