{"id":3653,"date":"2011-01-14T00:14:06","date_gmt":"2011-01-14T00:14:06","guid":{"rendered":"http:\/\/blog.open-e.com\/?p=3653"},"modified":"2025-07-03T08:34:21","modified_gmt":"2025-07-03T08:34:21","slug":"what-you-can-expect-from-ssd-2","status":"publish","type":"post","link":"https:\/\/www.open-e.com\/blog\/what-you-can-expect-from-ssd-2\/","title":{"rendered":"What you can expect from SSD?"},"content":{"rendered":"<p>\t\t\t\tHard disk performance is limited by mechanical parts velocity and there is no solution for this issue.<\/p>\n<p>Servers are using RAID for redundancy and for performance. Thanks to RAID technology it is possible to scale single hard disk performance.<\/p>\n<p>The team of disks works faster, but applications are needing increased improvements as over periods technical evolutions.<\/p>\n<p>There are storage offers using DDR RAM or SLC Flash that claim 2-20 GB\/s throughput or 100K to millions of random IO\/sec<\/p>\n<p>But the cost of such systems are extremely high.<\/p>\n<p>Recently RAID controller vendors like LSI and Adaptec offer SSD cache options. If the applications require higher random IO\/sec such solutions are worth looking into.<\/p>\n<p>Adaptec claims 8 times faster IO than HDD-only arrays.<\/p>\n<p>LSI claims even 50 times faster IO. They have simulated web servers that re-read hot spot activity. With CacheCade enabled reached at 14,896 IO\/sec and compared to 273 IO\/sec with disabled CacheCade.<\/p>\n<p>Such SATA\/SSD hybrid can significantly\u00a0 improve applications with random IO patterns. They work with single SSD as a minimum , the solution is relatively inexpensive.<\/p>\n<p>Adaptec\u00a0maxCache\u2122 64GB SSD Cache Performance Kit SRP = $1,795<\/p>\n<p>And \u00a0LSI CacheCade software pack has a suggested retail price of $270 plus X25-E Extreme 64GB cost $700 makes about $1,000.<\/p>\n<p>Very interesting will be to know what kind of random IO\/ps can be reached if we use SSD only.\u00a0 We have created <a title=\"Raid 5\" href=\"https:\/\/www.open-e.com\/blog\/how-does-raid-5-work\/\">RAID 5<\/a> with 4 * INTEL X25-M SATA SSD. The RAID 5 was fully initialized then the IOmeter test was started.<\/p>\n<p>Results below:<\/p>\n<p>RAID 5 with 4* INTEL X25-M SATA SSD 120GB<\/p>\n<table border=\"0\" width=\"444\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>Transfer Request Size<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>Percent Sequential<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>Percent Random<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>Percent Write<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>Percent Read<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>MB \/ second<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>IO \/ second<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>2KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>17<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>8707<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>2KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>40<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>20266<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>4KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>29<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>7259<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>4KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>56<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>14266<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>64KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>99<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>1580<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"71\"><strong>64KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"81\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"60\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>220<\/strong><\/td>\n<td valign=\"bottom\" width=\"55\"><strong>3524<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In order to be in a position to appreciate the above results we have run the same test pattern with RAID 5 with 12 * HDD SAS 15K (SEAGATE ST373455SS )<\/p>\n<p>Results below:<\/p>\n<p>RAID 5 with 12* SAS 15K<\/p>\n<table border=\"0\" width=\"448\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>Transfer Request Size<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>Percent Sequential<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>Percent Random<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>Percent Write<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>Percent Read<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>MB \/ second<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>IO \/ second<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>2KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>4.4<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>2300<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>2KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>4.8<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>2470<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>4KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>8.4<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>2220<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>4KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>10<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>2630<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>64KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>72<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>1140<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"63\"><strong>64KB<\/strong><\/td>\n<td valign=\"bottom\" width=\"73\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>0<\/strong><\/td>\n<td valign=\"bottom\" width=\"63\"><strong>100<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>98<\/strong><\/td>\n<td valign=\"bottom\" width=\"62\"><strong>1570<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>So:<\/p>\n<table style=\"height: 66px;\" border=\"0\" width=\"447\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Write IO\/sec with 2k block is<\/td>\n<td valign=\"bottom\" width=\"48\">3.8<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Read IO\/sec with 2k block is<\/td>\n<td valign=\"bottom\" width=\"48\">8.2<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Write IO\/sec with 4k block is<\/td>\n<td valign=\"bottom\" width=\"48\">3.3<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Read IO\/sec with 4k block is<\/td>\n<td valign=\"bottom\" width=\"48\">5.4<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>and:<\/p>\n<table style=\"height: 66px;\" border=\"0\" width=\"447\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Write MB\/sec with 2k block is<\/td>\n<td valign=\"bottom\" width=\"48\">3.9<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Read MB\/sec with 2k block is<\/td>\n<td valign=\"bottom\" width=\"48\">8.3<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Write MB\/sec with 4k block is<\/td>\n<td valign=\"bottom\" width=\"48\">3.5<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"271\">Random Read MB\/sec with 4k block is<\/td>\n<td valign=\"bottom\" width=\"48\">5.6<\/td>\n<td valign=\"bottom\" width=\"104\">times better<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>And the comparison was not quit fair because the HDD array has 12 drives and SSD array only 4.<\/p>\n<p>We are using cheaper (MLC) non-enterprise version of the SSD. The main problem with MLC SSD is the write endurance which is about 11TB for 120GB drive and 15TB for 160GB.<\/p>\n<p>If drives are in a RAID 5 the write endurance can be multiplied by n-1. Also there is option to leave some spare space for the Wear Leveling mechanism. For example 10% reserved space expands write endurance by 2.8 times.<\/p>\n<p>So 4 * 160GB SSD in RAID 5 with 10% reserved space = 3 (n-1)\u00a0 * 2.8 * 15 TB = 126 TB write endurance. If your application is not needing heavy duty write orientations then you can consider it for production.<\/p>\n<p>If the application is heavy duty write oriented you need to consider Enterprise SSD. Here is the write endurance comparison:<\/p>\n<table style=\"height: 82px;\" border=\"0\" width=\"508\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"bottom\" width=\"219\"><strong>Model<\/strong><\/td>\n<td valign=\"bottom\" width=\"96\"><strong>Endurance<\/strong><\/td>\n<td valign=\"bottom\" width=\"97\"><strong>Price<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"219\"><strong>INTEL X25-M SATA SSD 120GB<\/strong><\/td>\n<td valign=\"bottom\" width=\"96\"><strong>15 TB<\/strong><\/td>\n<td valign=\"bottom\" width=\"97\"><strong>$400 <\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"219\"><strong>INTEL X25-E Extreme 32GB<\/strong><\/td>\n<td valign=\"bottom\" width=\"96\"><strong>1 PB (1024 TB)<br \/>\n<\/strong><\/td>\n<td valign=\"bottom\" width=\"97\"><strong>$370 <\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"219\"><strong>INTEL X25-E Extreme 64GB<\/strong><\/td>\n<td valign=\"bottom\" width=\"96\"><strong>2 PB ( 2048 TB)<br \/>\n<\/strong><\/td>\n<td valign=\"bottom\" width=\"97\"><strong>$720<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"219\"><strong>WD SiliconDrive\u00a0N1x 128 GB<\/strong><\/td>\n<td valign=\"bottom\" width=\"96\"><strong>701 GB\/day<\/strong><\/td>\n<td valign=\"bottom\" width=\"97\"><strong>$1500<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>How much is 15TB. Sustain write 24\/7 with 20MB\/sec, so 15TB will be written in about 9 days.<\/p>\n<p>How much is 2PB. Sustain write 24\/7 with 20MB\/sec, so 2PB will be written in about 3.4 years.<\/p>\n<p>The RAID 5 array with 4 * Intel X25-E 64GB drives will cost $2880 and is about $15 per GB.<\/p>\n<p>The RAID 5 array with 4 * Intel X25-E 120GB drives will cost $1600and is about\u00a0 $4.4 per GB.<\/p>\n<p>In comparison to 15k SAS HDD, the RAID 5 array with 4 * Seagate 148GB (15k) makes 4 * $300 = $1200 \u00a0and is about $1.3 per GB.<\/p>\n<p>This shows about 12 times more expensive but at least 3 to 8 times faster with random IO.<\/p>\n<p>We did not test the enterprise SSD but mainstream SSD only. The random IO with enterprise SDD would be even better.\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hard disk performance is limited by mechanical parts velocity and there is no solution for this issue. Servers are using RAID for redundancy and for performance. Thanks to RAID technology&nbsp;&#8230;<\/p>\n","protected":false},"author":2,"featured_media":55802,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18,28],"tags":[114,344,388,539,624,625,745,746],"class_list":["post-3653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware","category-raid","tag-cachecade","tag-iosec","tag-maxcache","tag-raid5","tag-ssd","tag-ssd-cache","tag-x25-e","tag-x25-m"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/posts\/3653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/comments?post=3653"}],"version-history":[{"count":1,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/posts\/3653\/revisions"}],"predecessor-version":[{"id":55803,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/posts\/3653\/revisions\/55803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/media\/55802"}],"wp:attachment":[{"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/media?parent=3653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/categories?post=3653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.open-e.com\/blog\/wp-json\/wp\/v2\/tags?post=3653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}