Tuesday, March 15, 2016

SSD comparison | Consumer vs Enterprise SSD

SSD comparison | Consumer vs Enterprise SSD
The storage world has had a major upgrade when Solid State Disks came to market just a few years ago. Quickly the market was overwhelmed with many sizes and types of these ultra fast drives. Different types of cells like multi level cells, single level cells, cell sizes, different interfaces such as PCI-e, SATA and SAS and a great variety in performance and endurance.

Many IT colleagues had amazing posts with graphs on the raw throughput in MB/Sec. And then what happens when we create a striped volume of a bunch! Wow!

But when do you "need" an SSD? And the next questions would be "which type do I need then?" and "SSD has a short lifespan doesn't it?". Often the pricing of an enterprise SSD can result in quite a shock to your manager or purchasing authority.

In this post I will try to explain high level differences between the four major SSD types as indicated by the hardware vendors such as Dell, HP, IBM and obviously the SSD manufacturers themselves. And when to choose which type of SSD for your application.

So let's kick off with the four major types of SSDs and the models I used for this article.

The table below shows which SSDs I compare in this article. Please note that the prices are derived from pricespy.

Type Brand and Model Capacity Interface Endurance Warranty Price
Consumer grade Intel 730 Series 480 GB SATA 600 70GB/day 5 years € 269
Ent. Read intensive Seagate 1200.2 Light Endurance 480 GB SAS 12Gbps 3 DWDP 5 years € 1054
Ent. Mix use Seagate 1200.2 Mainstream Endurance 400 GB SAS 12Gbps 10 DWPD 5 years € 1286
Ent. Write intensive Seagate 1200.2 High Endurance 400 GB SAS 12Gbps 25 DWDP 5 years € 2000


As you may have noticed I did not split based on single level cell and multi level cell based SSDs because there isn't that much of a difference anymore, for 99% of the use cases. Additionally I have included the consumer grade SSD to the equation. The simple reason for this is to provide an answer to the question "Why don't we just drive by the local computer shop and by some cheap SSDs! They are much cheaper!"

SSD Endurance

In the table above it is also clear that different manufacturers have different notations for the endurance. It would be more easy to compare if they had the same notation. The warranty is usually limited and directly ties in to the endurance figures. For example Intel's 730 480GB drive is rated for 70GB per day written for a duration of 5 years (the warranty) and the Seagate 1200.2 High endurance is rated for 25 Drive Writes Per Day (DWDP). You can imagine that there is a great difference between the listed SSDs. Lets convert this number to Terra Bytes Written (TBW) and GB per day. TBW is the standard endurance metric proposed by JEDEC (JESD218). They also have created a standard for workload testing as well (JESD219). 

Type Brand and Model Capacity Endurance Warranty TBW GB/day
Consumer grade Intel 730 Series 480 GB 70GB/day 5 years 127,75 70
Ent. Read intensive Seagate 1200.2 Light Endurance 480 GB 3 DWDP 5 years 2628 1440
Ent. Mix use Seagate 1200.2 Mainstream Endurance 400 GB 10 DWPD 5 years 7300 4000
Ent. Write intensive Seagate 1200.2 High Endurance 400 GB 25 DWDP 5 years 18250 10000

Quite significant isn't it? Let's Put it in a graph and divide the TBW over the 5 year warranty as well to show it visually:
So depending on the workload you are planning to put on an SSD you must profile how much data is going to be written to it. Don't forget that RAID also impacts the writes. Especially RAID5 or 6. Each write comes with parity but I will cover RAID levels and their characteristics in another post.

SSD Performance

Just to quickly touch upon the speeds of these drives I'll be very short here since the focus is on endurance. The random writes of the Intel consumer grade SDD are actually higher then the enterprise mix use SSD. This could be due to different controllers and/or a different type of cell like triple level, multi level and single level cells. Or perhaps even because I am comparing two different brands.

Type Brand and Model Random 4KB read Random 4KB write
Consumer grade Intel 730 Series 89000 74000
Ent. Read intensive Seagate 1200.2 Light Endurance 190000 35000
Ent. Mix use Seagate 1200.2 Mainstream Endurance 200000 67000
Ent. Write intensive Seagate 1200.2 High Endurance 200000 80000


When to use SSDs

This might be the most tricky question since there is not one clear answer.

For example, only looking at the price per GB then SSD is very expensive compared to traditional spinning platter hard drives. Obviously, if you need TB's of storage which is infrequently accessed then don't go for SSD.

If you database server is utilizing a lot of swap space, or page file if you like, then rather consider adding more RAM to your box. But if you system is waiting for the disk all the time then you could consider SSD. You can easily check this by monitoring the wa counter extracted from the Linux top command or the disk queue length in the Windows performance monitor. They should be zero. An increasing wa or queue length counter can point to other things as well. Among them is fragmentation.

Basically try to solve the problem first before thinking of just putting it an SSD. High IO applications could really benefit form SSD anyway.

I use them too

Just to give you an idea, I am managing +/- 300 physical servers and only 4 of them are equipped with SSDs. The applications we run on them are two NGINX reverse caching proxies, an SQL server and a Splunk instance. 

NGINX reverse proxy

I chose to put SSDs in the NGINX servers since we wanted to be able to squeeze up to 10Gbit/s out of the cache  which would be around 800GB in size, and since the requests are completely random for small and medium size files a lot of random IO was expected. We use two 800GB read intensive SSD's in RAID 1 since we estimated that not more then 1 write cycle per day would happen.

SQL Server

This SQL server is used for performance metrics which are inserted at an very high rate (+/- 10000 per second) . All this data is also queried often. We found that even after indexing was applied the IO queue length would increase a lot at every insert batch. We installed write intensive disks in this server since data stored in raw format and then aggregated every minute. A lot of writes would happen. 

Splunk

We have a Splunk indexer running which is receiving +/- 4GB of data per day. We use to query (or search) data over longer periods of time. Even though a search itself is single threaded the wa counter would increase making other searches which were running simultaneous very slow by the rim we were still using a few spinning disks. In this server I installed 3 read intensive SSDs providing us 800GB of RAID5 protected capacity. Just like the SQL server, if the capacity is going to be exhausted I will add another read intensive SSD.

Conclusion

Yes, enterprise SSDs are more expensive than consumer grade SSDs but a write intensive disk can handle 143 times the amount of writes while it is not 143 times more expensive. If you are planning to store data and query it many many times but not deleting it you could go for read intensive disks. If you are using SSDs as caching disks as one would find in a web proxy then depending on the content cache lifetime you could use read intensive of mix use. Or if you are expecting your application to write more then ten times the SSD size per day then write intensive SSDs would be a good fit.

1 comment:

How to create a software RAID array in Linux | mdadm

In my previous post I explained on the most common used RAID levels and their write penalties. In this post I will show how you c...