We will be expanding the storage for a PostgreSQL server and one of the things we are considering is using SSDs (Intel 520 Series) instead of rotating discs (10k RPM). Price per GB is comparable and we expect improved performance, however we are concerned about longevity since our database usage pattern is quite write-heavy. We are also concerned about data corruption in case of power failure (due to SSDs write cache not flushing properly).

We currently use RAID10 with 4 active HDDs (10k 146GB) and 1 spare configured in the controller. It's a HP DL380 G6 server with P410 Smart Array Controller and BBWC.

What makes more sense: upgrading the drives to 300GB 10k RPM or using Intel 520 Series SSDs (240GB)?

  • 2
    There's no way I'd use non-powerloss-protected SSDs like the 520 series in a server that stored data I cared about. – Craig Ringer Dec 12 '12 at 2:51
  • @CraigRinger Data is being streamed to a slave server and we can afford a small loss. – Vlad Dec 13 '12 at 10:12

If you're using a server equipped with a Smart Array P400 controller, you're dealing with a G5-era 300-series ProLiant (DL360 G5, DL380 G5, etc.) or a G4/G5-era 500-series ProLiant (DL580, ML570). All of those systems were eclipsed in 2009 or before, so your system is several revisions behind and you're leaving performance on the table...

That said, you can use the Intel SSD's on your P400 controller. Understand that the P400 is only a 3Gb/s SAS controller.

Upgrade the controller firmware first.

They will provide some advantage on writes. Adjust your RAID controller's cache ratio to 75:25 write:read. By having a battery-backed unit (BBWC), the lack of a supercapacitor on your Intel 520 SSD is not an issue. (you'd have the same concern with spinning disks and no BBWC, right?)

Since storage space is your goal, you could also add four more 146GB disks and expand your existing array. There's a benefit there if you have the drive bays to support.

Either way, you have several options.


Notes on SSD's and P410 controllers:

What RAID controller comes with DL360 G7?

HP P410 RAID + Samsung 830 SSDs + Debian 6.0 - What performance to expect?

| improve this answer | |
  • It's actually a G6 DL380 (my mistake: the RAID controller is P410, we also have some G5s). We only have 1 empty drive bay since we use 2 drives (RAID1) for OS and logging and 4+1 drives (RAID10 + spare) for DB data. Indeed, we're doing ok performance-wise. – Vlad Oct 1 '12 at 13:36
  • @Vlad For a G6/G7, I would not hesitate to run with SSD's. See some of my notes here. Test with an SSD to make sure that temperature reports properly on the controller. Otherwise, you're good to go. – ewwhite Oct 1 '12 at 13:47
  • Do you happen to have some experience with failure rates for SSDs? We've had good experience with Enterprise grade 10k SAS drives from HP when servers are hosted in a decent environment (reliable power supply and good climate control). – Vlad Oct 1 '12 at 14:10
  • @Vlad I use a full range of SSD's, spanning el-cheapo to $3k+ enterprise SSD's. I've only had failures on one or two early Intel drives... – ewwhite Oct 1 '12 at 14:17
  • 2
    @ewwwhite I'm not sure that it's correct to say "By having a battery-backed unit (BBWC), the lack of a supercapacitor on your Intel 520 SSD is not an issue.". The SSD may tell the controller that data is in durable storage when it isn't really unless the SSD has power loss protection. The disk controller can flush data from its BBWC before it hits NAND on the SSD, while it's still in volatile write cache. I would want to use power-loss-protected SSDs or do extremely careful repeated plug-pull testing with the exact SSD+raid controller model combo I was going to use. – Craig Ringer Dec 12 '12 at 2:50

The Intel 520 series SSDs are rated by Intel for 20GB of 4k random writes per day for 5 years.

You should be able to measure how much IO per day you're doing, and compare that against this figure. That scales as expected - if you're doing 40GB of 4k random writes per day, Intel rate your drive for 2.5 years. This may still be acceptable to you, of course.

It's not actually as clear cut as above, because it's very unlikely you're actually doing 100% random 4k writes. Your filesystem cache and your RAID controller cache will merge writes on the way down the stack, which probably results in doing larger block writes. Your application may well batch up writes too (I haven't looked specifically at PostgreSQL's behaviour here).

However, the 20GB/day figure is probably a reasonable one to base your calculation on.

| improve this answer | |
  • 1
    Also be aware that the 520 series has no power loss protection. – Craig Ringer Dec 12 '12 at 2:50
  • This is only a problem if you leave the drive cache on (most RAID controllers disable it, or at least recommend disabling it); or the drive lies to you about committing the data to non-volatile storage (either magnetic or flash) when you have the write cache turned off. This is the same for both magnetic and flash disks. – Daniel Lawson Dec 12 '12 at 8:33
  • BBWC is neither the same thing as, nor a replacement for PLP. – Amit Naidu Mar 1 '14 at 2:10

Since your workloads are I/O-bound as you say, replacing your current disks with larger 10k disks probably won't help much. To improve I/O you need either more spindles (more 146 GB disks) or faster disks (SSDs).

| improve this answer | |
  • Performance is not a major issue yet but an improvement it's always nice to have. But we do need extra space. – Vlad Oct 1 '12 at 12:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.