Disk Performance (fio)

This section presents the results of read and write workload tests performed with the fio (Flexible I/O Tester) tool, including both data transfer speeds and operation counts.

What the test measures

The benchmark runs a 50/50 mixed workload of reads and writes on the target partition (e.g., /dev/sda1). Results are reported for multiple block sizes: 4k, 64k, 512k, and 1M.

  • Block size determines the amount of data transferred in each I/O request.
    For example, a 4k block size means each request transfers 4 KB of data, while a 1M block size transfers 1 MB at a time.
  • Read indicates how quickly data can be retrieved from disk.
  • Write indicates how quickly data can be stored to disk.
  • Total is the combined throughput when reads and writes are issued together.

All tests use the same test file (2 GB, or 512 MB on ARM systems). The block size defines the amount of data read or written in each I/O operation. Smaller blocks require more operations to process the file, while larger blocks complete the same work in fewer operations.

Each result includes two values:

  1. Data transfer speed (MB/s or GB/s) – how much data can be read or written per second.
  2. IOPS (Input/Output Operations Per Second) – how many individual I/O requests the device can process per second.

Significance of Block Sizes

Benchmark results are reported across multiple block sizes because no single value reflects all workload patterns. Different applications generate different I/O request sizes, so examining performance at 4k, 64k, 512k, and 1M reveals how a device behaves under varied conditions.

Here's a version tied directly to intended usage:

  • Small blocks (4k) - Most important for workloads with heavy random I/O, such as databases, mail servers, game servers, and virtual machine hosting. Performance here directly affects application responsiveness.
  • Medium blocks (64k) - Relevant for general-purpose servers and mixed workloads, including web applications with both database activity and file serving. It provides a balance between random and sequential access.
  • Large blocks (512k,1m) - Critical for workloads dominated by sequential transfers, such as media streaming, backups, file servers, and scientific or archival data processing, where raw throughput is the main concern.

Notes

The disk speed (MB/s) and the IOPS value in each cell are directly related. If you multiply the IOPS by the block size, you get the speed shown in MB/s. They're just two different units describing the same data transfer performance.