[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