Sequential vs Random I/O on SSDs?

8

I believe I understand the difference between sequential and random I/O on HDD's, and that sequential I/O is much faster.

My question, this article states that:

there is no physical concept of blocks being adjacent or contiguous

on flash storage.

So why are all SSD manufacturer's advertising sequential read/write speeds? According to the article, sequential read/write is irrelevant to flash storage, so what are manufacturer's referring to when they say sequential read/write speed of "500mb/s"?

Zhinkk

Posted 2018-05-25T16:52:56.057

Reputation: 81

2its more or less the max I/O you are going to get out of the device. it is my understanding that SSDs do have ranks (or something similar) that could slow down non-sequential reads if the data happens to be in just the wrong place, but you are correct the diff between sequential and random is much less important for SSDs do to the lack of need to scan/seek. it also makes them directly comparable to mechanical HDDs, which was a marketing priority when SSDs were new and terribly expensive. – Frank Thomas – 2018-05-25T16:59:49.567

Answers

8

Your premise is flawed. The fact that there is essentially zero seek latency on an SSD means that the fact that the data isn't stored as a linear mapping is irrelevant to the performance of the device, and therefore you can treat it functionally as a simple linear mapping of blocks. Also note however, that the article you are quoting isn't entirely accurate. A filesystem block is usually 4kB, while the 'blocks' of data on the SSD are actually usually 4MB in size, so it's very possible for a file less than 4MB in length to be entirely contained in one physical location on the SSD.

There are two other reasons that sequential I/O performance matters though:

  • Dispatching an I/O request to a device is not free, it takes time for the OS to prepare it, and it takes time for the OS to clean up once the data has been transferred. By doing sequential I/O, you can reduce the number of I/O requests you have to dispatch, and therefore further minimize the overhead of accessing the device. Given this, the sequential I/O rating gives you a functional upper bound on how fast you can get data onto or off of the device (running a SSD rated for 500MB/s and 10000 IOPS at that 10000 IOPS will never get you performance any better than 500MB/s).
  • People still do bulk data transfers on or off of SSD's, so it is still useful to know how fast those will run.

Austin Hemmelgarn

Posted 2018-05-25T16:52:56.057

Reputation: 4 345