Network Performance
The content in the sections below apply to Performance 2 Service Level Agreement for Oracle Cloud Infrastructure – Compute within Section 3.6 of the Oracle PaaS and IaaS Public Cloud Services Pillar documentation. You can download a PDF from the Oracle Cloud Infrastructure Service Level Agreement (SLA) page.
Oracle Cloud Infrastructure provides a service-level agreement (SLA) for network throughput between instances in the same availability domain in a Virtual Cloud Network (VCN). You might think of this as a measurement of LAN performance.
This SLA applies only to bare metal instances.
If your VCN isn't
meeting the bandwidth SLA, ensure that the CPU on the instance isn't loaded heavily
with other services or applications. Confirm this using a a utility such as
top
to look at the average CPU utilization. It should be less
than one.
To meet the SLA, the network throughput for instances within the same availability domain and VCN must be at least 90% of the stated maximum for at least 99.9% of the billing month. Network throughput is measured in megabits per second (Mbps) or gigabits per second (Gbps).
For information about the average network round-trip latency between regions, see Inter-Region Latency.
Testing Methodology
Launch two bare metal instances in the same availability domain and VCN. Install and run the iperf3
utility, with one instance as server and the other as client. Look at the iperf3
bandwidth results to determine your VCN's network throughput.
- Launch two bare metal instances in the same availability domain in a single VCN. Designate one as the server and the other as the client. For launch instructions, see Creating an Instance.
-
Install
iperf3
on both instances. Example Linux command:sudo yum install -y iperf3
- Enable communication to the server instance on TCP port 5201 (for
iperf3
):- For the subnet that the server instance is in, add a rule to the subnet's security list to allow stateless ingress traffic on TCP port 5201 from any source IP address (0.0.0.0/0) and any source port. For instructions, see Updating Rules in a Security List. If you are instead using network security groups (NSGs) with the instance, add the rule to the instance's NSG.
On the instance itself, open the firewall to allow
iperf3
traffic. Example Linux commands:Caution
For instances with an iSCSI boot volume, the following--reload
command can cause problems. For details and a workaround, see Instances experience system hang after running firewall-cmd --reload.sudo firewall-cmd --zone=public --permanent --add-port 5201/tcp sudo firewall-cmd --reload
- Start the
iperf3
test:On the server instance, run
iperf3
in server mode. Example Linux command:iperf3 -s
On the client instance, run
iperf3
in client mode and specify the private IP address of the server instance. Example Linux command:iperf3 -c <server_instance_private_ip_address>
-
Look at the
iperf3
results on the client instance. The network throughput between the two instances is shown under "Bandwidth" in the last five lines of the client'siperf3
test output. For example:- - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec XX.YY GBytes NN.NN Gbits/sec 752 sender [ 4] 0.00-10.00 sec XX.YY GBytes NN.NN Gbits/sec receiver iperf Done.
Automated Testing
The script included in perf-check.zip automates the commands used in the previous section. To use the script:
- Ensure that TCP/UDP port 5201 is open by reviewing the security rules and route tables, making changes if necessary.
- Extract the script perf-check.py from the perf-check.zip file.
- Start a copy of the script on your server endpoint by entering:
./perf-check.py server
- Start a copy of the script on your client endpoint by entering:
./perf-check.py client <server address>
The script will produce an archive on both endpoints (default names: perf-results-client.tar.gz and perf-results-server.tar.gz). These archives should be provided to Oracle support for further analysis.
You can use the preceding iperf instructions to test performance between hosts that are not in the same availability domain, or between a host in the VCN and a host in the on-premises network. The instructions can be used to test performance between any two endpoints. For accurate results, when transferring data outside an availability domain, you must add
--parallel 5
at the end of the client connection command.