Intel has been shipping the DC S3700 series fairly quietly for a couple of months now. I suppose that “DC” is supposed to mean Data Center? This new series is also high write endurance MLC based flash that’s designed to compete against high cost/high performance/high write life SLC devices. The spec sheet says it’s still 25nm MLC but must be either a new flash cell design and/or paired with a new controller as the performance blows the previous 710 series away. The interface has been updated from 3G SATA to 6G SATA (SATA 3), which is obviously needed now as the read & write spec exceeds 3G SATA (SATA 2). I also assume that the DC S3700s retain the 710s internal battery (or is it a capacitor?) backed cache; the spec sheet has just “Enhanced power-less data protection”.
Per drive capacity reliability numbers aren’t given, what the spec sheet has is “10 drive writes/day over 5 years while running JESD218 standard”. I assume that means write endurance is at least 10 x 365 x 5 x capacity or endurance = 18250 x drive capacity. However, it’s not clear what size those writes are (as the factor of write amplification due to write size vs erase block size will have a massive impact on cell life) as I don’t have access to a copy of that standard. If those are 4K random writes this works out to about 0.2x the endurance of the best SLC devices, which would be impressive. This could be more or less the same write life per cell as the 710 series but with a different test standard, which would not be impressive.
Is the fact that a new generation device is still 25nm based a sign that Intel has grossly excess 25nm fab capacity or a sign that there is trouble with flash cell reliability at smaller design sizes? I suspect a more likely possibility is that this is the exact same 25nm high endurance MLC flash as used in the 710 series paired with a better performing Sandforce based controller as is used in the Intel 520 & 330 series “regular” MLC devices.
While the 710 series was/is available as 100, 200, & 300GB 2.5″ SATA drives, the new DC 3700s are available in 100, 200, 400, & 800GB 2.5 SATA and 200 & 400GB 1.8″ SATA. The 1.8″ SATA drives are probably aimed at the blade server market. The pricing on the new series is also presently cheaper. The 100GB DC S3700s started shipping at ~$250 while the 100GB 710s were still hovering at a little over $400. It looks like the price on the 710s is starting to drop quickly thou as today I can find the 100GB 710 on AMZ for ~$300. Compared to what I would consider a best of bread SLC device, the Hitachi Ultrastar SSD400S, the pricing is incredible. The Hitachi devices cost OVER $1,500 for the 100GB version. At that level of cost delta, the DC S3700s would still be cost effective with less than 0.166x the write life. However, note that the Hitachi SLC devices are SAS while all of the Intel MLC devices are SATA. SATA will be a deal breaker for dual SAS expander setups. It’s curious that Intel is not shipping this series with at least a SAS interface option.
At the rate flash is increasing performance 12G SAS/SATA 4 controllers better start shipping in volume soon or I expect the popularity of PCIe flash solutions to start increasing.
| Drive | Read MB/s | Write MB/s | Random Read 4K IOPS | Random Write 4K IOPS | Write Endurance |
|---|---|---|---|---|---|
| 710 – 100GB | 270 | 170 | 38,500 | 2,300 | 500TB (4K random) |
| 710 – 200GB & 300GB | 270 | 210 | 38,500 | 2,700 | 1.0 & 1.1 PB (4K random) |
| DC 3700 – 100GB | 500 | 200 | 75,000 | 19,000 | 1.825PB (JESD218) |
| DC 3700 – 200GB | 500 | 365 | 75,000 | 32,000 | 3.65PB (JESD218) |
| DC 3700 – 400/800GB | 500 | 460 | 75,000 | 36,000 | 7.3 & 14.6 PB (JESD218) |
| Ultrastar SSD400S SLC & 6G SAS (all capacities?) | 516 | 458 | 41,000 | 21,000 | 9 PB per 100GB of capacity (says random, assume 4K) |
I did a fast, unscientific, test with dbench 4.0 in O_SYNC mode with 24 threads. No attempt was made to tune the Linux block I/O settings or the ext4 filesystem used. The system I tested on also had an active load so I’m not going to post the test system setup. Even so, this is by far the most impressive single device dbench/O_SYNC results I’ve seen to date. I’ll throw in the test system’s boot device, a 7200RPM “near line” SATA drive, for rough comparison against spinning media.
[root@foonsd2 ~]# lsscsi --verbose 0:0:1:0
[0:0:1:0] disk ATA INTEL SSDSC2BA10 5DV1 /dev/sdd
dir: /sys/bus/scsi/devices/0:0:1:0 [/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:1/0:0:1:0]
[root@foonsd2 ~]# function stdpart {
> DATA_DEV=$1
> PART_NAME=$2
>
> PARTED=/sbin/parted
> SECTOR_ALIGNMENT=8192
>
> $PARTED -s /dev/${DATA_DEV} mklabel gpt
>
> DATA_TOTAL_SECTORS=`$PARTED -s /dev/${DATA_DEV} unit s print free | grep Disk | awk '{print $3}' | cut -d 's' -f1`
>
> if [ $SECTOR_ALIGNMENT -lt 128 ];
> then
> DATA_LVM_START=128
> else
> DATA_LVM_START=$SECTOR_ALIGNMENT
> fi
>
> DATA_LVM_END=$(((($DATA_TOTAL_SECTORS - 1) / $SECTOR_ALIGNMENT) * $SECTOR_ALIGNMENT - 1))
>
> if [ -z $PART_NAME ]
> then
> PART_NAME=`hostname -s`.pv00
> fi
>
> $PARTED -s /dev/${DATA_DEV} unit s mkpart primary $DATA_LVM_START $DATA_LVM_END
> $PARTED -s /dev/${DATA_DEV} unit s name 1 $PART_NAME
>
> $PARTED -s /dev/${DATA_DEV} unit s print
> }
[root@foonsd2 ~]# stdpart sdd test
Model: ATA INTEL SSDSC2BA10 (scsi)
Disk /dev/sdd: 195371568s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 8192s 195371007s 195362816s test
[root@foonsd2 ~]# mkfs.ext4 -j /dev/sdd1
mke2fs 1.41.12 (17-May-2010)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6111232 inodes, 24420352 blocks
1221017 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
746 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@foonsd2 ~]# yum install -y dbench
...
[root@foonsd2 ~]# dbench --directory=/mnt/tmp --sync -t 60 24
dbench version 4.00 - Copyright Andrew Tridgell 1999-2004
Running for 60 seconds with load '/usr/share/dbench/client.txt' and minimum warmup 12 secs
21 of 24 processes prepared for launch 0 sec
24 of 24 processes prepared for launch 0 sec
releasing clients
24 106 118.40 MB/sec warmup 1 sec latency 48.212 ms
24 258 116.81 MB/sec warmup 2 sec latency 32.805 ms
24 413 116.62 MB/sec warmup 3 sec latency 33.279 ms
24 566 116.21 MB/sec warmup 4 sec latency 64.177 ms
24 1377 120.19 MB/sec warmup 5 sec latency 60.370 ms
24 2786 125.97 MB/sec warmup 6 sec latency 79.440 ms
24 4169 137.88 MB/sec warmup 7 sec latency 42.509 ms
24 5592 137.74 MB/sec warmup 8 sec latency 92.960 ms
24 6412 136.19 MB/sec warmup 9 sec latency 39.724 ms
24 7569 141.34 MB/sec warmup 10 sec latency 97.209 ms
24 8668 138.89 MB/sec warmup 11 sec latency 125.324 ms
...
24 cleanup 60 sec
0 cleanup 60 sec
Operation Count AvgLat MaxLat
----------------------------------------
NTCreateX 337461 0.192 48.156
Close 247608 0.002 0.375
Rename 14258 1.453 39.979
Unlink 68245 0.688 38.411
Qpathinfo 305413 0.050 34.690
Qfileinfo 53101 0.001 0.858
Qfsinfo 56038 0.005 1.028
Sfileinfo 27378 1.446 36.467
Find 117983 0.027 15.587
WriteX 166238 6.908 203.554
ReadX 527817 0.122 47.793
LockX 1086 0.003 0.079
UnlockX 1086 0.001 0.077
Flush 23633 1.362 68.226
Throughput 174.88 MB/sec (sync open) 24 clients 24 procs max_latency=203.559 ms
[root@foonsd2 ~]# umount /mnt/tmp/
[root@foonsd2 ~]# dd if=/dev/zero of=/dev/sdd count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00114995 s, 445 kB/s
[root@foonsd2 ~]# lsscsi --verbose 0:0:0:0
[0:0:0:0] disk ATA Hitachi HUA72201 JP4O /dev/sda
dir: /sys/bus/scsi/devices/0:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0]
[root@foonsd2 ~]# mkdir /tmp/dbench
[root@foonsd2 ~]# dbench --directory=/tmp/dbench/ --sync -t 60 24
dbench version 4.00 - Copyright Andrew Tridgell 1999-2004
Running for 60 seconds with load '/usr/share/dbench/client.txt' and minimum warmup 12 secs
22 of 24 processes prepared for launch 0 sec
24 of 24 processes prepared for launch 0 sec
releasing clients
24 20 10.68 MB/sec warmup 1 sec latency 276.131 ms
24 28 11.11 MB/sec warmup 2 sec latency 263.714 ms
24 39 11.40 MB/sec warmup 3 sec latency 247.485 ms
24 48 11.79 MB/sec warmup 4 sec latency 237.449 ms
24 58 11.62 MB/sec warmup 5 sec latency 258.607 ms
24 66 11.62 MB/sec warmup 6 sec latency 260.589 ms
24 76 11.45 MB/sec warmup 7 sec latency 255.196 ms
24 84 11.46 MB/sec warmup 8 sec latency 283.232 ms
24 94 11.37 MB/sec warmup 9 sec latency 274.574 ms
24 101 11.31 MB/sec warmup 10 sec latency 290.769 ms
24 113 11.34 MB/sec warmup 11 sec latency 237.590 ms
...
24 cleanup 60 sec
0 cleanup 60 sec
Operation Count AvgLat MaxLat
----------------------------------------
NTCreateX 9244 6.757 221.715
Close 8137 0.002 0.109
Rename 304 8.485 97.074
Unlink 787 6.380 122.212
Qpathinfo 7544 0.727 159.491
Qfileinfo 2861 0.001 0.007
Qfsinfo 923 0.005 0.098
Sfileinfo 979 11.716 157.608
Find 2517 0.129 107.114
WriteX 11368 116.134 519.096
ReadX 9093 2.259 129.707
Flush 767 18.829 243.631
Throughput 9.02044 MB/sec (sync open) 24 clients 24 procs max_latency=519.101 ms




