Network Performance

The content in the sections below apply to Category 7 and Section 3.c of the Oracle PaaS and IaaS Public Cloud Services Pillar documentation. You can download a PDF from the Oracle Cloud Infrastructure Service Level Agreement 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.
Important

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.

  1. 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.
  2. Install iperf3 on both instances. Example Linux command:

    sudo yum install -y iperf3
  3. Enable communication to the server instance on TCP port 5201 (for iperf3):
    1. 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.
    2. 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
  4. Start the iperf3 test:
    1. On the server instance, run iperf3 in server mode. Example Linux command:

      iperf3 -s
    2. 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>
  5. 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's iperf3 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:

  1. Ensure that TCP/UDP port 5201 is open by reviewing the security rules and route tables, making changes if necessary.
  2. Extract the script perf-check.py from the perf-check.zip file.
  3. Start a copy of the script on your server endpoint by entering:

    ./perf-check.py server

  4. 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.

Important

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.