Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Optimize OCI compute shapes, block volume tiers, and network throughput.
Use when choosing instance shapes, configuring block volume performance, or benchmarking OCI infrastructure.
Trigger with "oraclecloud performance", "oci shape comparison", "oci block volume iops", "oracle cloud performance tuning".
allowed-tools
Read, Write, Edit, Bash(pip:*), Grep
version
1.7.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
["saas","oraclecloud","oci"]
compatibility
Designed for Claude Code
Oracle Cloud Performance Tuning
Overview
Navigate OCI's opaque shape naming, block volume performance tiers, and shape-dependent network bandwidth. OCI shapes like VM.Standard.E5.Flex, VM.Standard3.Flex, and VM.Standard.A1.Flex look similar but have wildly different performance profiles. Block volume tiers (Balanced, Higher Performance, Ultra High Performance) have different IOPS and throughput limits that are easy to get wrong. This skill maps performance characteristics to shapes and storage tiers so you can make informed infrastructure decisions.
Purpose: Choose the right compute shape and storage tier for your workload by understanding OCI's performance characteristics, and monitor those resources programmatically.
Prerequisites
OCI tenancy with an API signing key in ~/.oci/config
Python 3.8+ with pip install oci
Compartment OCID for querying available shapes and metrics
Basic understanding of IOPS, throughput, and OCPU concepts
Instructions
Step 1: Understand Shape Naming
OCI shape names encode processor generation, type, and flexibility:
Shape
Processor
OCPUs
Network Gbps per OCPU
Best For
VM.Standard.E5.Flex
AMD EPYC 9J14 (Genoa)
1–94
1 Gbps
General workloads (latest gen)
VM.Standard.E4.Flex
AMD EPYC 7J13 (Milan)
1–64
1 Gbps
General workloads
VM.Standard3.Flex
Intel Xeon (Ice Lake)
1–32
1 Gbps
Intel-optimized software
VM.Standard.A1.Flex
Ampere Altra (ARM)
1–80
1 Gbps
ARM-native, cost-efficient
VM.Optimized3.Flex
Intel Xeon (Ice Lake)
1–18
4 Gbps
HPC, network-intensive
BM.Standard.E5.192
AMD EPYC 9J14
192
100 Gbps total
Bare metal, full isolation
Key insight: Flex shapes let you choose OCPU and memory independently. Memory defaults to 1 GB/OCPU min, 64 GB/OCPU max (varies by shape). Network bandwidth scales linearly with OCPUs up to the shape maximum.
Step 2: Query Available Shapes
Discover what shapes are available in your tenancy and region:
OCI block volumes have three performance tiers. IOPS and throughput scale with volume size:
Tier
IOPS / GB
Max IOPS
Throughput / GB
Max Throughput
Cost Multiplier
Balanced
60
25,000
480 KB/s
480 MB/s
1x (default)
Higher Performance
75
35,000
600 KB/s
480 MB/s
~1.7x
Ultra High Performance
90–225
300,000
720 KB/s–2.4 MB/s
2.4 GB/s
~3.3x+
Example: A 1 TB Balanced volume gets 25,000 IOPS and 480 MB/s throughput. The same 1 TB on Ultra High Performance gets up to 225,000 IOPS and 2.4 GB/s.
30–120 = Ultra High Performance (scales IOPS linearly)
Step 5: Monitor Performance Metrics
Query actual performance data from running instances and volumes:
from datetime import datetime, timedelta
monitoring = oci.monitoring.MonitoringClient(config)
# Query disk IOPS for a specific instance
response = monitoring.summarize_metrics_data(
compartment_id="ocid1.compartment.oc1..example",
summarize_metrics_data_details=oci.monitoring.models.SummarizeMetricsDataDetails(
namespace="oci_computeagent",
query='DiskIopsRead[5m].mean() + DiskIopsWritten[5m].mean()',
start_time=(datetime.utcnow() - timedelta(hours=1)).isoformat() + "Z",
end_time=datetime.utcnow().isoformat() + "Z"
)
)
for metric in response.data:
for dp in metric.aggregated_datapoints:
print(f"{dp.timestamp}: {dp.value:.0f} total IOPS")
After optimizing shapes and storage, proceed to oraclecloud-cost-tuning to track spend and set budget alerts, or see oraclecloud-observability to set up ongoing performance monitoring with alarms.