April 15th, 2014 by StorageReview Enterprise Lab
Samsung SSD 840 Pro Enterprise SSD Review
The Samsung SSD 840 Pro isn't a new SSD, it was released 18 months ago and targeted toward the client market. At the time, we did a complete review of the SSD 840 Pro and found it to be a very capable SSD for its targeted use cases. A funny thing has happened though over time. Web hosts and many others looking for a good SSD with moderate write endurance have been turning to the SSD 840 Pro. It's a lower cost alternative than duty-built drives designed for enterprise users and it still offers a good mix of performance and write endurance. This phenomenon isn't new, even hybrid and all flash arrays have been "guilty" of using client SSDs as their mainstay for many years. Despite the best intentions of the SSD vendors who would prefer enterprise users buy their enterprise drives, the cost equation sometimes wins out, hence the 840 Pro wiggling itself into more and more server deployments, despite its relative age and client focus.
It's a bit odd that we'd go back in time to review an SSD again, we hit the SSD 840 Pro at its launch and ran our standard suite of client benchmarks at that time. Our forums activists though urged us to revisit the drives due to their popular status with web hosts and the fact that the drives have seen many firmware updates since the initial review we've rolled out several application tests including popular SSD 840 Pro use cases like SQL Server, MySQL and NoSQL workloads. We'll not go back and revisit the benefits of the SSD 840 Pro platform, that hasn't changed from the initial review. This time around we look specifically at the application tests we have enough drives for and revisit firmware performance changes in a few synthetic workloads.
Testing Background and Comparables
Comparables for this review:
- Micron P400m (400GB, Marvell 9187 controller, Micron 25nm MLC NAND, 6.0Gb/s SATA)
- Intel SSD DC S3700 (200GB, Intel PC29AS21CA0 controller, Intel 25nm MLC NAND, 6.0Gb/s SATA)
- Crucial M500 (960GB, Marvell controller, Micron 20nm MLC NAND, 6.0Gb/s SATA)
- Samsung SM843 (240GB, Samsung MDX S4LN021X01-8030 controller, Samsung 20nm MLC NAND, 6.0Gb/s SATA)
- Intel SSD DC S3500 (480GB, Intel PC29AS21CA0 controller, Intel 20nm MLC NAND, 6.0Gb/s SATA)
- Smart CloudSpeed 1000E (400GB, Marvell 88SS9187-BLD2 controller, Toshiba TH58TEG8DDJBA8C 19nm MLC NAND, 6.0Gb/s SATA)
All SAS/SATA enterprise SSDs are benchmarked on our second-generation enterprise testing platform based on a Lenovo ThinkServer RD630. This Linux and Windows-based testing platform includes the LSI 9207-8i HBA as well as I/O scheduling optimizations geared towards best-case flash performance. For synthetic benchmarks, we utilize FIO version 2.0.10 for Linux and version 188.8.131.52 for Windows. Application benchmarks use a variety of testing platform configurations and are detailed below.
- 2 x Intel Xeon E5-2620 (2.0GHz, 15MB Cache, 6-cores)
- Intel C602 Chipset
- Memory - 16GB (2 x 8GB) 1333Mhz DDR3 Registered RDIMMs
- Windows Server 2008 R2 SP1 64-bit and CentOS 6.3 64-Bit
- 100GB Micron RealSSD P400e Boot SSD
- LSI 9211-4i SAS/SATA 6.0Gb/s HBA (For boot SSDs)
- LSI 9207-8i SAS/SATA 6.0Gb/s HBA (For benchmarking SSDs or HDDs)
- Mellanox ConnectX-3 10GbE PCIe 3.0 Adapter
- Mellanox ConnectX-3 InfiniBand PCIe 3.0 Adapter
Application Performance Analysis
In the enterprise market there is a huge difference between how products claim to perform on paper and how they perform in a production environment. We understand the importance of evaluating storage as a component of larger systems, most importantly how responsive storage is when interacting with key enterprise applications. To this end, we've rolled out our first application tests including our proprietary MarkLogic NoSQL Database Storage Benchmark and MySQL performance via SysBench.
In our MarkLogic NoSQL Database environment, we test groups of four SATA or SAS SSDs with a usable capacity greater than or equal to 200GB. Our NoSQL database requires roughly 650GB of free space to work with, evenly divided between four database nodes. In our testing environment, we use an SCST host and present each individual SSD in JBOD, with one allocated per database node. The test repeats itself over 24 intervals, requiring between 30-36 hours total for the SSDs in this category. Measuring the internal latencies seen by the MarkLogic software, we record both total average latency, as well as interval latency for each SSD.
In our overall average latency ranking of our MarkLogic NoSQL database benchmark, the Samsung 840 Pro was roughly in the middle of the pack, beating out the Samsung SM843, Smart CloudSpeed 500, and Seagate 600 Pro and being outpaced by the Intel S3500, Intel S3700, and Smart CloudSpeed 1000E.
The CloudSpeed 1000E had higher latency spikes than the Intel DC SSDs, but in aggregate lower latency overall. We measured the greatest spikes in the 10-60ms range.
In second place, the Intel S3500 shines in our NoSQL environment, with latency spikes staying between 6-19ms over the entire test.
The Intel S3700 came in third to the S3500, even with its higher-performance (but lesser capacity) NAND configuration. It had latency that crept up slightly compared to the S3500, with spikes measuring between 10-32ms. Overall it still performed quite well in our NoSQL test.
The Samsung SSD 840 Pro held its own with the more mainstream enterprise SSDs fairly well, coming in middle of the pack and also out-pacing the Samsung SM843, albeit the smaller capacity version.
Moving to the next SSD in the light-enterprise category that we included in our MarkLogic tests, latency started to pick up significantly. We recorded peaks as high as 1,907ms, with many peaks measuring between 60-100ms.
Next in line was the Samsung SM843, which further pushed up the latency ceiling with spikes measuring between 150-500ms in steady state and one spike topping 1,562ms.
The Seagate 600 Pro came in towards the bottom in our MarkLogic NoSQL testing, with latency picking up significantly as the drive neared steady state performance. With this SSD, latency peaks measured between 150-400ms, with the largest spike of 490ms.
Our next application test consists of Percona MySQL database test via SysBench which measures the performance of OLTP activity. In this testing configuration, we use a group of Lenovo ThinkServer RD630s and load a database environment onto a single SATA, SAS or PCIe drive. This test measures average TPS (Transactions Per Second), average latency, as well as average 99th percentile latency over a range of 2 to 32 threads.
The Samsung 840 Pro's average TPS was on the low side for this group, beating out only the Micron M500. The Intel S3700 showed the best performance in this benchmark.
The standings are identical in the average latency measurement; the Samsung 840 Pro was the second to slowest, the Micron M500 was the slowest, and the Intel S3700 was the fastest.
The Samsung 840 Pro performed somewhat better when looking at the lowest overall 99th percentile latency, staying alongside the Seagate 600 and beating out the Smart CloudSpeed 1000E. The Intel S3700 dominated this measurement.
Enterprise Synthetic Workload Analysis
Flash performance varies as the drive becomes conditioned to its workload, meaning that flash storage must be preconditioned before each of the fio synthetic benchmarks in order to ensure that the benchmarks are accurate. Each of the comparable drives are secure erased using the vendor's tools and preconditioned into steady-state with a heavy load of 16 threads and an outstanding queue of 16 per thread.
Preconditioning and Primary Steady-State Tests:
- Throughput (Read+Write IOPS Aggregate)
- Average Latency (Read+Write Latency Averaged Together)
- Max Latency (Peak Read or Write Latency)
- Latency Standard Deviation (Read+Write Standard Deviation Averaged Together)
Once preconditioning is complete, each device is then tested in intervals across multiple thread/queue depth profiles to show performance under light and heavy usage. Our synthetic workload analysis for the Samsung 840 Pro uses two profiles which are widely used in manufacturer specifications and benchmarks.
- 100% Read and 100% Write
- 70% Read/30% Write
During preconditioning for the 4k synthetic benchmark, the Samsung 840 Pro performed well during its burst stage, leveling off as the slowest drive tested. The Intel DC S3700 gave the best performance through its steady-state.
During its burst rate the Samsung 840 Pro held its own but turned out to be the slowest drive tested, never actually reaching a steady-state but rather losing speed through the duration of the test. The Intel DC S3700 and CloudSpeed drives were the fastest and second fastest, respectively.
In the maximum latency test the Samsung 840 Pro brought up the rear along with the Samsung SM843 and Crucial M500 drives. The Intel DC S3700 and Micron P400m were the fastest and second fastest, respectively, but the latter showed a few very high spikes.
The Samsung 840 Pro was the least consistent of all of the drives tested towards the end of the test, but performed fairly well during the burst-rate and post-burst-rate. the Intel DC S3700 and CloudSpeed drives were the most consistent, showing barely any difference between burst and steady-states.
The Samsung 840 Pro performed very well in read functions, achieving the highest value (71800 IOPS), followed by the Samsung SM843 (71600 IOPS). However, it showed the worst write performance (7854 IOPS) out of all of the drives tested.
Although its write speed was the highest of all the drives tested (32.6 ms), the average latency of the Samsung 840 Pro's read performance was the lowest (3.56 ms).
The Samsung SM843 and 840 Pro came within 0.2 ms of each other in the maximum latency test, both of which were the slowest drives tested in write performance (700.92 IOPS vs. 701.06 IOPS, respectively). However, they were also the fastest drives tested in read performance, with 21.8 and 20.7 ms, respectively.
Consistent with the results of the other 4k tests, the Samsung 840 Pro had one of the highest standard deviations of all of the drives tested in write performance (45.8 ms), only beating the Crucial M500 (48.2 ms), but also the lowest standard deviation in read performance (1.7 ms).
Our next workload uses 8k transfers with a ratio of 70% read operations and 30% write operations. Although it started out as one of the top performers in its burst-rate, the Samsung 840 Pro leveled off as one of the slower drives tested, beating out only the Samsung SM843.
The Samsung 840 Pro consistently staying in roughly the middle of the pack during the average latency testing, although towards the end of the test it started to grow relatively slower. The Intel DC S3700 was generally the fastest drive tested.
Once again, the Samsung 840 Pro maintained its position in the middle of the pack through the duration of the maximum latency test. For the most part, the Intel DC S3700 was the fastest and the Samsung SM843 was the slowest, but the Crucial M500 showed an abrupt spike towards the end of the test that greatly exceeded the times of the other drives.
The standard deviation results look very similar to the maximum latency results; the Intel DC S3700 was the most consistent, the Samsung 840 Pro was average, the Samsung SM843 was generally the least consistent, and the Crucial M500 showed a huge spike during the second half of the test.
Once the drives are preconditioned, the 8k 70/30 throughput benchmark varies workload intensity from 2 threads and 2 queue up to 16 threads and 16 queue. The Samsung 840 Pro was the slowest performer through the duration of this first benchmark, although its performance was the most consistent out of all of the drives tested. The Intel DC S3700 was the highest performer.
Mirroring the results from the throughput examination, the Samsung 840 Pro was the slowest performer in average latency measurement, and the Intel DC S3700 was the fastest.
In the maximum latency test the Samsung 840 Pro performed very badly, being outclassed by every other drive tested. The CloudSpeed drive was the top performer in this measurement.
When looking at standard deviation, the Samsung 840 Pro once again performed relatively inconsistently. The Intel DC S3700 was the most consistent, although it was closely followed by both the Intel S3500 and Samsung SM843.
At the start of this review we set out to see what one of the industry's leading high-end client drives would do in enterprise workloads due to its popularity in that segment. It's important to understand the expectations and needs for a drive in the light-enterprise (server) space, concerns there are largely about cost. Even though enterprise drives designed for this segment may offer more features like capacitors for power fail protection and write endurance that's 3x or more of the 840 Pro, for clustered servers that spend most of their time serving data not collecting it, fast low-cost client SSDs become viable. At roughly .75/GB, the value proposition is pretty good in this case, compared to 2X or more for enterprise equivalents.
The Samsung 840 Pro showed very competitive read performance in 4k 100% testing, although its write speeds were fairly slow. It didn't perform well in the 4k preconditioning tests or 8k 70% read 30% write, but was generally average in the 8k preconditioning tests. While these tests are designed to be quite stressful on SSDs, the 840 Pro with no additional over-provisioning (OP) suffered in these areas, although tweaking the OP would help improve these areas if the buyer wanted to go to that level.
In our application tests the Samsung SSD 840 Pro performed quite well in the MarkLogic NoSQL test, scoring upper middle of the pack; even better than the smaller capacity SM843. In the MySQL-based Sysbench test the 840 Pro came in lower middle of the pack, although this is another area where increased over-provisioning would most likely help it out. For savvy buyers looking to lower CAPEX costs, acquiring these SSDs to then over-provision more could make these even more performance competitive compared to the more expensive entry-enterprise models.
While much of our testing is more intensive than recommended for these drives, overall the 840 Pro held up very well considering it was meant to be stashed in a notebook, not within a high-performance compute cluster. Given the price point, for more read intensive duties where these drives are being deployed today, the 840 Pro is not only viable from a performance perspective, but especially effective based on pricing. In highly tolerant environments where endurance and enterprise SSD features may not be as relevant, it's easy to see why the 840 Pro has gained such a stronghold.