Compute NVMe Performance

The content in the sections below apply to Category 7 and Section 3.a of the Oracle PaaS and IaaS Public Cloud Services Pillar documentation.

Oracle Cloud Infrastructure provides a variety of instance configurations in both bare metal and virtual machine (VM) shapes. Each shape varies on multiple dimensions including memory, CPU cores, network bandwidth, and the option of local NVMe SSD storage found in DenseIO and HPC shapes.

Oracle Cloud Infrastructure provides a service-level agreement (SLA) for NVMe performance. Measuring performance is complex and open to variability.

An NVMe drive also has non-uniform drive performance over the period of drive usage. An NVMe drive performs differently when tested brand new compared to when tested in a steady state after some duration of usage. New drives have not incurred many write/erase cycles and the inline garbage collection has not had a significant impact on IOPS performance. To achieve the goal of reproducibility and reduced variability, our testing focuses on the steady state duration of the NVMe drive's operation.

Testing Methodology

Caution

Before running any tests, protect your data by making a backup of your data and operating system environment to prevent any data loss. The tests described in this document will overwrite the data on the disk, and cause data corruption.

Summary: To capture the IOPS measure, first provision a shape such as the BM.DenseIO.E4.128 shape, and then use the Gartner Cloud Harmony test suite to run tests on an instance running the latest supported Oracle Linux 8 image for each NVMe drive target.

Instructions:

  1. Create an instance based on the latest supported Oracle Linux 8 image and select a shape such as the BM.DenseIO.E4.128 shape. For instructions, see Creating an Instance.

  2. Run the Gartner Cloud Harmony test suite tests on the instance for each NVMe drive target. The following is an example of a command that will work for all shapes and drives on the shape:

    sudo ./run.sh `ls /dev/nvme[0-9]n1 | sed -e 's/\//\--target=\//'` 
    --nopurge –noprecondition --fio_direct=1 --fio_size=10g --test=iops
    --skip_blocksize=512b --skip_blocksize=8k --skip_blocksize=16k
    --skip_blocksize=32k --skip_blocksize=64k --skip_blocksize=128k
    --skip_blocksize=1m

The SLA for NVMe drive performance is measured against 4k block sizes with 100% random write workload on DenseIO shapes where the drive is in a steady state of operation.

Performance Benchmarks

The following table lists the minimum IOPS for the specified shape to meet the SLA, given the testing methodology with 4k block sizes for 100% random write tests using the tests described in the previous section.

Shape

Minimum Supported IOPS

VM.DenseIO1.4 113k
VM.DenseIO1.8 227k
VM.DenseIO1.16 455k
BM.DenseIO1.36 1.05MM
VM.DenseIO2.8 206k
VM.DenseIO2.16 420k
VM.DenseIO2.24 843k
BM.DenseIO2.52 1.67MM
VM.DenseIO.E4.Flex with 8 OCPUs 230k
VM.DenseIO.E4.Flex with 16 OCPUs 460k
VM.DenseIO.E4.Flex with 32 OCPUs 920k
BM.DenseIO.E4.128 1.88MM
BM.HPC2.36 216k
BM.Optimized3.36 135k

Although the NVMe drives are capable of higher IOPS, Oracle Cloud Infrastructure currently guarantees this minimum level of IOPS performance.

Frequently Asked Questions

I suspect a slowdown in my NVMe drive performance. Is there a SLA violation?

We test hosts on a regular basis to ensure that are our low-level software updates do not regress performance. If you have reproduced the testing methodology and your drive's performance does not meet the terms in the SLA, please contact your Oracle sales team.

Why does the testing methodology not represent a diversity of IO workloads such as random reads and writes to reflect real world IO?

We focused on reproducibility and we believe the tests provide a significant indicator of overall drive performance.

Will Oracle Cloud Infrastructure change the tests in this document?

We will make changes to provide greater customer value through better guarantees and improved reproducibility.