X

The latest cloud infrastructure announcements, technical solutions, and enterprise cloud insights.

How to measure disk performance on Oracle Cloud Block Volume

Rachel Lam
Principal Technology Cloud Consultant

It’s essential to know the disk performance of your cloud compute, and it helps to plan and architect workload effectively. Often, architectures for cloud workloads run aground on the rocky shoals of unexpected poor storage performance. To prevent problems from beginning, knowing how fast your disks and filesystems has become important. This post shows you how to measure disk performance on Oracle Cloud Block Volume service.

Using FIO and Block Volume service

We use FIO commands to measure disk performance. FIO is a free and open source tool that can be used for performance benchmarking. It supports many operating systems, including Oracle Linux, Windows, RHEL, and OpenBSD.

To get raw performance of a persistent disk, I created a 1-TB block volume and attached it to an Oracle Linux Compute instance. If you want to know how, see Attaching a Volume in the documentation.

A screenshot of the resulting code from attaching a block volume.

I then connected to the instance and installed FIO.

A screenshot of FIO installed and running in the Console.

Oracle Cloud Block Volume has three types of elastic performance options. The following table lists the performance characteristics for each elastic performance level. For more information, see Block Volume Elastic Performance.

Performance level

IOPS/GB

Max IOPS per volume

Throughput per GB (KB/s per GB)

Max throughput per volume (MB/s per volume)

VPUs/GB

Lower cost

2

3000

240

Up to 480

0

Balanced

60

25,000

480

480

10

Higher performance

75

35,000

600

480

20

Let’s see what results I got for my 1-TB balanced performance block volume.

Random reads test (based on 4 K block size)

sudo fio --filename=/dev/sdb --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 –readonly

A screenshot of the resulting code run in the Console with one line outlined in red.

Latency performance test (based on 4K Block Size)

sudo fio --filename=/dev/sdb --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly

A screenshot of the test results for throughput with a line outlined in red.

Latency performance test (based on 4K Block Size)

sudo fio --filename=/dev/sdb  --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=1 --numjobs=1 --time_based --group_reporting --name=readlatency-test-job --runtime=120 --eta-newline=1 --readonly

A screenshot of the latency performance test with three lines of code outlined in red.

From the three results, we’re getting the maximum 25,000 IOPs from random read test, 119 MiB/s from throughput performance, and between 264 microseconds–21 milliseconds from latency performance test, on the 1-TB block volume. We’ve configured to use Linux native AIO (using the ioengine=libaio parameter in FIO command), so the Linux caching system doesn’t interfere with these results.

To verify the obtained results are sufficient for the required workloads, a good approach is to gather the IOPs requirements from proof of concepts testing.  The IOPS requirements vary based on the types of environments and workloads (eg, file systems, databases, high-throughput workloads).  It is also important to know the number of users accessing the systems.  When we gathered the requirements, we could allocate adequate storage to have sufficient IOPs. 

Balanced performance option provides 60 IOPs per GB up to 25,000 IOPs per volume. High I/O workloads, such as large databases, are recommended to run on the High Performance option, which provides 75 IOPs per GB up to 35,000 IOPs per volume.
 

Try it for yourself!

You can start doing the same performance tests to compare Oracle Cloud Block Volume in Compute. Knowing the disk performance helps you plan and architect workload on Oracle Cloud effectively. Sign up for a free trial today!

Join the discussion

Comments ( 1 )
  • Ian Chua Tuesday, February 2, 2021
    Awesome, thanks for sharing Rachel!
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha