IOPS versus Throughput

  1. What is the key difference between IOPS and Throughput in large data storage?
  2. Does file size have an effect on IOPS? Why?

Solution 1:

IOPS measures the number of read and write operations per second, while throughput measures the number of bits read or written per second.

Although they measure different things, they generally follow each other as IO operations have about the same size.

If you have large files, you simply need more IO operations to read the entire file. The file size has no effect on the IOPS as it measures the number of clusters read or written, not the number of files.

If you have small files, there will be more overhead, so while the IOPS and throughput look good, you may experience a lower actual performance.

Solution 2:

This is the analogy I came up with when talking about Throughput and IOPS.

Think of it as:

  1. You have 4 buckets (Disk blocks) of the same size that you want to fill or empty with water.

  2. You'll be using a jug to transfer the water into the buckets. Now your question will be:

  • At a given time (per second), how many jugs of water can you pour (write) or withdraw (read)? This is IOPS.

  • At a given time (per second) what's the amount (bit, kb, mb, etc) of water the jug can transfer into/out of the bucket continuously? This is throughput.

Additionally, there is a delay in the process of you pouring and/or withdrawing the water. This is Latency.

There's 3 things to consider when talking about IOPS and Throughput:

  • Size (file size/block size)
  • Patterns (Random/Sequential)
  • Mix (Read/Write) percentage