I recently had the opportunity to work on a new Dell PowerEdge R720 system that has two, 2TB Intel DC P3700 PCIe Flash Storage Cards installed. This particular card is the largest capacity model of the high-end P3700 series (Intel has lower-end P3600 and P3500 cards in this same family). As with most flash storage, larger capacity devices typically have much better performance than lower capacity devices from the same product family because there are more NANDs to read and write to and there are more channels to use.
Initially, I was somewhat disappointed by the CrystalDiskMark results for this device, as shown in Figure 1. These results are not terrible, especially compared to most SANs or a single 6Gbps SAS/SATA SSD, but they were not nearly as good as I was expecting.
It turns out that Windows Server 2012 R2 has native NVMe support, with some generic, default drivers. These drivers let Windows recognize and use an NVMe device, but they do not give the best performance. Installing the native Intel drivers makes a huge difference in performance from these cards.
You will need to download and install the drivers first (which will require a reboot), and then you will want to download and install the Intel Solid State Drive Data Center Tool (which is a command-line only tool), so you can check out the card and update the firmware if necessary. The links for those two items are below:
Intel Solid-State Drive Data Center Family for PCIe Drivers
Intel Solid-State Drive Data Center Tool
You should also confirm that you are using the Windows High Performance Power Plan and that your BIOS is not using any power management settings that affect the voltage supplied to the PCIe slots in your server. Setting the BIOS power management to OS control or high performance is usually what you need to do, but check your server documentation.
Figure 1: CrystalDiskMark Results with Default Microsoft Driver
Here are the relevant results in text form:
Sequential Read : 682.778 MB/s
Sequential Write : 700.335 MB/s
Random Read 4KB (QD=32) : 381.311 MB/s [ 93093.6 IOPS]
Random Write 4KB (QD=32) : 282.259 MB/s [ 68910.9 IOPS]
After installing the native Intel drivers and updating the firmware, CrystalDiskMark looks much better! This is SAN-humbling performance from a single PCIe card that is relatively affordable.
Figure 2: CrystalDiskMark Results with Native Intel Driver
Here are the relevant results in text form:
Sequential Read : 1547.714 MB/s
Sequential Write : 2059.734 MB/s
Random Read 4KB (QD=32) : 646.816 MB/s [157914.2 IOPS]
Random Write 4KB (QD=32) : 419.740 MB/s [102475.6 IOPS]
This is a pretty dramatic difference in performance and it is another reason why database professionals should be paying attention to the details of their hardware and storage subsystem. Little details like this are easy to miss, and I have seen far too many busy server administrators not notice them.
7 thoughts on “Getting the Best Performance From an Intel DC P3700 Flash Storage Card”
Very weak benchmark. This drives requires QD128 to shine, you are no longer on the SATA limit of 32.
I’m not sure what your point is here. My point is that using the native Intel driver made a substantial difference in performance on this benchmark.
Glenn, helpful article ..can you please clarify when you say you were using 2 x P3700 were they independent to WS2012r2 or in RAID 1? [I see the “D” drive on one in your test]
..what are the considerations that we must apply in IT Architecture Design re need to RAID or can use independently? ..how do they present to the Operating System before config’d? after? any screen shots to share?
These two drives were in RAID 1 at the OS level, i.e. using RAID 1 in Windows, not with a hardware RAID controller. If you care about redundancy and system uptime, it is a good idea to use RAID 1 for these types of storage cards, to eliminate a single point of failure.
This is exactly what we’ve done for our core SQL cluster nodes.
Server 2012 R2, MS Storage spaces Mirror with 2x 2TB DC P3600.
We get Seq32T1 read speeds ~4600MBps, and write speeds ~1700MBps.
4K Q32T1 Read 350MBps and Write 165MBps
Random 4k Read 31.7Mbps, Write 110MBps
We’re just about to expand and put in another pair.
Amazing performance boost for the price!
Yes, they provide a lot of performance for a pretty small price!