- Check the network latency and packet loss
- Check the network bandwidth usage
- Test Oracle GoldenGate pump throughput
First, let's use PING command to check the network latency and packet loss status[2]. The following is an example output:
PING 129.144.2.34 (129.144.2.34) 56(84) bytes of data. 64 bytes from 129.144.2.34: icmp_seq=1 ttl=27 time=1.84 ms 64 bytes from 129.144.2.34: icmp_seq=2 ttl=27 time=1.44 ms 64 bytes from 129.144.2.34: icmp_seq=3 ttl=27 time=1.41 ms ^C --- 129.144.2.34 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 1.416/1.567/1.847/0.202 ms
To check the TCP throughput because of Oracle GoldenGate delivery data via TCP protocol. We can use iperf tool provided by the LINUX distribution to measure TCP throughput and available bandwidth, delay variation, and datagram loss[1][5].
[ec2-user@ip-10-184-238-104 ~]$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.184.238.104 port 5001 connected with 129.144.2.34 port 47101 ------------------------------------------------------------ Client connecting to 129.144.2.34, TCP port 5001 TCP window size: 618 KByte (default) ------------------------------------------------------------ [ 6] local 10.184.238.104 port 60933 connected with 129.144.2.34 port 5001 [ ID] Interval Transfer Bandwidth [ 6] 0.0-10.0 sec 308 MBytes 258 Mbits/sec [ 4] 0.0-10.0 sec 1.26 GBytes 1.08 Gbits/sec
[opc@ggcsdb4ocpunode ~]$ iperf -c 54.146.16.50 -d ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 19.7 MByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 54.146.16.50, TCP port 5001 TCP window size: 123 KByte (default) ------------------------------------------------------------ [ 5] local 10.196.75.74 port 47101 connected with 54.146.16.50 port 5001 [ 4] local 10.196.75.74 port 5001 connected with 54.146.16.50 port 60933 [ ID] Interval Transfer Bandwidth [ 5] 0.0-10.0 sec 1.26 GBytes 1.08 Gbits/sec [ 4] 0.0-10.0 sec 308 MBytes 258 Mbits/sec
- TCP Window Size/Latency= 123 KByte/0.014s = 6092KB/s=6.092M/s.
- Bandwidth-in-bits-per-second * Round-trip-latency-in-seconds = 258Mbps*0.01 second/8 = 320KB
With the estimation, let's configure an GoldenGate pump process to pump ~100MB of trail files with COMPRESSION across the network to the GGCS instance and check the delivery throughput. We get the following result:
[opc@ggcsdb4ocpunode backup]$ ls -l -F --full-time total 494700 -rw-r----- 1 oracle oracle 99999911 2016-03-23 00:31:22.344000000 -0400 pa000000 -rw-r----- 1 oracle oracle 99999904 2016-03-23 00:31:25.868000000 -0400 pa000001 -rw-r----- 1 oracle oracle 99999956 2016-03-23 00:31:29.445000000 -0400 pa000002 -rw-r----- 1 oracle oracle 99999977 2016-03-23 00:31:33.012000000 -0400 pa000003 -rw-r----- 1 oracle oracle 99999883 2016-03-23 00:31:36.609000000 -0400 pa000004 -rw-r----- 1 oracle oracle 6550061 2016-03-23 00:31:38.926000000 -0400 pa000005
Your data and network could be different, but you can use the same approach to evaluate your throughput data delivery performance.
- http://kb.pert.geant.net/PERTKB/IperfTool
- 3 Command line tool to test bandwidth between 2 servers
- Measuring Network Capacity using oratcptest (Doc ID 2064368.1)
- Netperf: http://www.netperf.org/netperf/
- Iperf: https://iperf.fr/