Sequential vs Random I/O on SSDs?

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”?

Answer

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.

Attribution
Source : Link , Question Author : Zhinkk , Answer Author : Austin Hemmelgarn

1 thought on “Sequential vs Random I/O on SSDs?”

  1. “the article you are quoting isn’t entirely accurate” — seems harsh 🙂

    “A filesystem block is usually 4kB, while the ‘blocks’ of data on the SSD are actually usually 4MB in size” — the term ‘block’ has an entirely different meaning on NAND flash technology, denoting a group of ‘pages’. A page is the smallest unit that can be read or written, while a block is the smallest unit that can be erased. So it doesn’t really make sense to compare a filesystem ‘block’ to a NAND flash ‘block’.

    Whenever a PAGE READ operation is performed, the data from the page is first read into a register, after which it can be accessed by the caller. So there is no special benefit of accessing two different pages in the same block; they still have to be separately read to the register.

    However, I do agree with the answerer’s overall summation: I/O requests aren’t free. For this reason, it would make a lot more sense if the manufacturers of non-rotating media simply used the terms “single block read/write” and “multi-block read/write”.

    Reply

Leave a Comment