In MOSC I read about OraTcpTest and had a short look at MOS note 2064368.1 . The scope of the tool is to measure network performance for Dataguard environments.
In the past I used iperf – a default Unix tool – but it has to be installed and it’s hard to set the options exactly matching the database. Often the results were not the same as the database ones. OraTcpTest should do it better.

The only prerequisite is java which is included in ORACLE_HOME.
If your are using a non reserved port, you can run it as non privileged user.
No special options are required to start the server:

node1$ java -jar oratcptest.jar -server -port=50000

Client needs to specify the options for the test:

node2$ java -jar oratcptest.jar node1 -port=50000 -mode=async -duration=10s -interval=2s
[Requesting a test]
 Message payload = 1 Mbyte
 Payload content type = RANDOM
 Delay between messages = NO
 Number of connections = 1
 Socket send buffer = (system default)
 Transport mode = ASYNC
 Disk write = NO
 Statistics interval = 2 seconds
 Test duration = 10 seconds
 Test frequency = NO
 Network Timeout = NO
 (1 Mbyte = 1024x1024 bytes)

(10:01:53) The server is ready.
(10:01:55) 1019.240 Mbytes/s
(10:01:57) 1062.165 Mbytes/s
(10:01:59) 1047.969 Mbytes/s
(10:02:01) 1048.935 Mbytes/s
(10:02:03) 1083.720 Mbytes/s
(10:02:03) Test finished.
 Socket send buffer = 2 Mbytes
 Avg. throughput = 1052.081 Mbytes/s

On node2 the message appears:

[A test was requested.]
 Message payload = 1 Mbyte
 Disk write = NO
 Socket receive buffer = (system default)

The test terminated. The socket receive buffer was 2 Mbytes.

At least the -port option is required.

Please adjust the prarmeter regarding your planed Datagurad config:

SYNC AFFIRM -mode=sync -write
SYNC NOAFFIRM -mode=sync
ASYNC -mode=async

The server has the option -file to specify the path to the file. Only useful, if the -write option on the client side is used. Unforunattly it’s not possible to write to ASM diskgroups. :(One other useful option I want to mention: for wide distance networks you need to know the round trip time (rtt) to calculate the tcp buffer size.
This tool can also measure the rtt over a longer time and print it as Avg. latency.
Be Careful: the field Avg. latency has diffrent values, if -mode is used instead of -rtt.

node2$ java -jar oratcptest.jar node1 -port=50000 -rtt -duration=10s -interval=2s

For other options have a look at the help:

 node2$ java -jar oratcptest.jar -help


It’s easy to use, the prerequisites are really small and the information is more precise than OS tools.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s