Who is this for?

This is an introductory topic for developers looking to optimize storage performance, reduce costs, identify bottlenecks, and evaluate storage options when migrating applications across platforms.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Describe data flow through storage devices.
  • Monitor storage performance using tools like iostat, iotop, and pidstat.
  • Run fio to microbenchmark a block storage device.

Prerequisites

Before starting, you will need the following:

  • An Arm-based instance from a cloud service provider or an Arm Linux server.
  • Familiarity with Linux.

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll characterize storage on an Arm-based Linux system by analyzing a real workload and running comparable fio profiles. You’ll identify I/O size, read/write mix, access pattern, target IOPS, and throughput, then attach SSD-backed devices and monitor them with iostat, iotop, and pidstat. By the end, you’ll compare device behavior and interpret fio results alongside system metrics.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know the additional volumes are attached correctly before running `fio`?
After attaching the volumes in the cloud console, the instance should expose two new block devices. Verify that the expected device identifiers are available so you can target them in tests.
Which `fio` job parameters should I choose to reflect my workload?
Base your job on the attributes you observed from the real workload: I/O size, read/write ratio, sequential versus random access, target IOPS, and throughput. Keep the profile consistent when comparing devices.
What should I look for in `fio` output to compare devices?
Focus on reported IOPS and throughput for the selected job profile. Compare those values across runs to see how each block device behaves under the same conditions.
When should I run `iostat`, `iotop`, and `pidstat` during this process?
Run them while the workload and fio jobs are active to observe device utilization and per-process activity. Use these observations to spot contention and guide the next test configuration.
Do I need to use the exact instance type shown in the example?
The example uses an Arm-based cloud instance to illustrate the workflow. You can follow the same steps on an Arm Linux server or another Arm-based instance.
Next