[horde] Bottleneck ? CPU or HDisk IO or RAM
Jan Schneider
jan at horde.org
Thu Feb 5 09:56:55 UTC 2009
Zitat von Andrew Morgan <morgan at orst.edu>:
> 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.
I didn't know there are even formulas for that, cool. Can you turn
that into a wiki page. Maybe the people involved in this thread can
even work on a broader "what hardware do I need" page. That would
definitely be helpful for a lot of people and could accompany the
http://wiki.horde.org/Deployments page.
Jan.
--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/
More information about the horde
mailing list