Solid-state drives (SSD) have rapidly evolved over the last few years, resulting in devices with more space and greater reliability. SSDs are used for caching in data centers and in larger system applications including computing massive data sets (big data: volume, variety, and velocity). This blog shares some features of Intel® SSD, illustrates the potential uses of SSDs in the cloud, and provides some general Linux guidelines to fully utilize Intel SSDs.
Some key features of Intel SSDs
In the last 30 years, the most significant change in latency and bandwidth in a storage device comes from NAND (type of flash memory) which is currently used in the Intel SSD. Complete performance details can be found in the Intel® SSD DCS3700 Series specification:
- Read and Write IOPS
- - Random 4 KB Reads: Up to 75,000 IOPS
- - Random 4 KB Writes: Up to 36,000 IOPS
- - Random 8 KB Reads: Up to 47,500 IOPS
- - Random 8 KB Writes: Up to 20,000 IOPS
- Bandwidth Performance
- - Sustained Sequential Read: Up to 500 MB/s
- - Sustained Sequential Write: Up to 460 MB/s
- Latency (average sequential)
- Read: 50 µs (TYP)
- Write: 65 µs (TYP)
Be aware that higher density data center SSDs provide better performance over the lower density SSDs with the Intel SSD DC S3700 Series. There are more flash devices in the high density SSDs, which translates to more potential for concurrent work (see Figure 1).
Figure 1 Performance vs. Density
In the Intel Data Center Family of SSDs, performance increases as the workload moves from more writes to reads. This is due to the NAND process and the “housekeeping” activities associated with the write process (see Figure 2).
Figure 2 Read/Write Mix
Intel SSDs have better performance as the queue depth increases. Queue depth is the number of pending input/output (I/O) request for a given logical drive. Intel SSD’s maximum queue depth is 32 (specified by the SATA protocol), which means the drive can process more in parallel (see Figure 3). With a HDD, large queue depths can be used to measure device overload. Whereas, in an SSD, deep queuing can be beneficial. SSDs have very low latency and respond almost instantly to I/O requests. Intel SSDs can go up to 75k IOPS for the reads and 36k IOPS for the writes for random 4k block aligned workloads.
Figure 3- Queue Depth
With the maturation of both features and capacity, there is growing potential for the usage of SSDs in the cloud and in data center applications.
Potential Usage of SSD in the Cloud and Data Center Applications
Due to the higher price (per GB) of SSD, SSDs are best used in workloads that benefit from the high random IOP capacity. One of these workloads could require data caching. In Figure 4, the front-end web server and back-end storage will have the data caching functions. SSDs can be applied to reduce the traffic and requests before going out to the network.
Figure 4 - SSDs in the Cloud
For applications like databases, content delivery, and email servers, SSDs provide faster response times than traditional disks, and they can be used as “proximity storage” to reduce the requests over the network or storage network (see Figure 5). Proximity storage is a local storage that provides of data caching or storage tiering function for the local servers. .
Figure 5 - SSD Best Fit for Data Center Applications
How to take advantage of the Intel SDD?
For most general workloads, use a 4k block size and the IO scheduler in Linux set to NOOP to give the optimum performance on all of Intel SSDs. Other workloads, not covered in this blog, may require further testing and analysis to determine the most efficient OS parameters. Here are some general guidelines to take advantage of all Intel SSDs after installing the operating systems:
- Change the value for IO Scheduler to NOOP
- Align the block to 4K or 4096KB boundary
An example of how to set the IO scheduler in Open Solaris* (this setting will NOT survive a reboot):
># cat /sys/block/sdb/queue/scheduler
noop anticipatory deadline [cfq]
># echo noop > /sys/block/sdb/queue/scheduler
noop is the optimum value for 4k random workloads
An example of how to set the partition in RedHat* edition of Linux: Partition using fdisk and appropriate values for block sizing and options
>use option –b when partition,
>make sure use option “c” to turn off DOS compatible
>and “u” to change units to sectors
- >> fdisk –b 4096 /dev/sdX
- c ---- turn off DOS compatible
- u --- change units to sectors
With explosion of big data, data center applications and cloud infrastructures need to process an increasing volume of data and requests from their users. This brief overview of the Intel SSD features and the potential usage of SSDs in data centers can help developers plan for this type of storage capability as it becomes more common. For most general workloads, preparing the SSDs with the suggestion provided help improving the performance. Finally, Intel SSDs can help cloud infrastructure and data center applications meet growing user demands, and achieve better response times simultaneously.