Difference between revisions of "Hardware Specifications"

From Roaring Penguin
Jump to: navigation, search
Line 1: Line 1:
 
Here's what our database servers for our Hosted CanIt service look like:
 
Here's what our database servers for our Hosted CanIt service look like:
  
Disk:
+
===Disk===
----
 
 
We have sixteen 10k RPM SATA drives arranged using Linux Software
 
We have sixteen 10k RPM SATA drives arranged using Linux Software
 
RAID-10 with the "offset" strategy.  This is described here:
 
RAID-10 with the "offset" strategy.  This is described here:
Line 18: Line 17:
 
7 million messages/day and the database server is nowhere near IO-saturated.
 
7 million messages/day and the database server is nowhere near IO-saturated.
  
RAM:
+
===RAM===
----
 
 
Our database servers have 256GB of RAM each.  I recommend putting as
 
Our database servers have 256GB of RAM each.  I recommend putting as
 
much RAM as possible into the system; you want all of the small tables
 
much RAM as possible into the system; you want all of the small tables
Line 25: Line 23:
 
RAM for best performance.
 
RAM for best performance.
  
CPU:
+
===CPU===
----
 
 
Our database servers have two physical processors:
 
Our database servers have two physical processors:
 
Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
 
Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz

Revision as of 15:20, 24 June 2014

Here's what our database servers for our Hosted CanIt service look like:

Disk

We have sixteen 10k RPM SATA drives arranged using Linux Software RAID-10 with the "offset" strategy. This is described here: http://www.ilsistemista.net/index.php/linux-a-unix/35-linux-software-raid-10-layouts-performance-near-far-and-offset-benchmark-analysis.html

The sixteen disks are arranged conceptually as eight stripes with each stripe being a RAID-1 pair; this gives us (theoretically) 16x read performance and 8x write performance compared to a single disk; actual measurements show that the performance improvement is quite close to what the theory says.

We considered using SSDs for the database server, but I am still not completely comfortable with their reliability and for us, at least, spinning disks still work fine. Our hosted service peaks at about 7 million messages/day and the database server is nowhere near IO-saturated.

RAM

Our database servers have 256GB of RAM each. I recommend putting as much RAM as possible into the system; you want all of the small tables such as sender rules, user-lookup settings, etc. to wind up cached in RAM for best performance.

CPU

Our database servers have two physical processors: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz

Each processor has six cores and each core has hyperthreading, so cat /proc/cpuinfo reports 24 processors. That seems to be plenty of CPU for our needs.

The database servers configured as above cost us $10 000 each. We use SuperMicro hardware; brand-name hardware like HP or Dell will probably be a bit more expensive.