netthroughput

NAME
SYNOPSIS
OPTIONS
USAGE
WARNING
EXAMPLE
NOTES
COPYRIGHT
SEE ALSO

NAME

netthroughput − Estimate SQL*Net throughput

SYNOPSIS

netthroughput -l u/p@c [--download] [--upload] [--upload-pct=N] [--rampup=N] [--concurrency=N] [--verbosetest] [--period=N] [--end2end] [--csvoutput=file] [--csvappend=file] [--csvexcel]

The netthroughput utility can be used to estimate throughput between a database and the client or application server from which is running.

OPTIONS

-l u/p@c

Compulsory option to provide the username, password, and connect string for a database connection. You can omit the /p part in which case rwloadsim will prompt for the password.

The user needs access to v$ queries to estimate physical network throughput.

--download
--upload

Measure download and/or upload throughput. At least one of these options must be provided.

--upload-pct=N

When measuring both upload and download, specify how many percent of the streams will be doing upload.

--rampup=N

Set rampup period for throughput tests, default is 5s

--concurrency=N

Run this many concurrent test streams, default 1.

--end2end

Add end-to-end tracing with times shown in respectively client, Oracle Call Interface, network and database.

--verbosetest

Be more verbose.

--period=N

The period in seconds to run the test; default 60s.

--csvoutput=file
--csvappend=file

Write results to the file named as space separated values. There will be one line with at least these columns:

1

The number of concurrent streams.

2

The logical download throughput in MB/s.

3

The physical download throughput in MB/s or 0 if access to v$ is not possible.

4

The logical upload throughput in MB/s.

5

The physical download throughput in MB/s or 0 if access to v$ is not possible.

6

The value 0 if all streams executed concurrently, otherwise the results are not reliable and the value shows the needed rampup time. See below under WARNING.

If the first option is used or the second option is used but the file does not already exist, an initial line with column headings is written. If the second option is used, output will be appended to the file.

If either of --download or --upload is not given, the respective figures will be 0.

If end-to-end tracing is enabled, there will be six further columns with times spent in the netthrougput application, Oracle Call Interface and the database; the first three will be for download, the last three for uploads.

--csvexcel

If a csv file is created, use ’;’ as field separator, CRLF line terminators, and omit # on the first line with column headings.

USAGE

The netthroughput utility is used to estimate the throughput of database connections between some database server and the client where it is executed. You can measure throughput in either or both directions concurrently by providing either or both of the --upload and --download options.

The throughput test will use one or more concurrent streams to fetch (for download) send send (for upload) data over the connection. You should normally use an increasing number of streams until saturation where use of further streams does not increase the throughput.

When using both options, half of the connections will do download and the other half will do upload. That split can be adjusted using the --upload-pct option, which will set the percentage of connections that will perform the upload. Note that the resulting split cannot be very precise as there will always be a whole number of connections of each type.

There are two calculations done, one based on the logical byte count of the query being executed, and one based on the physical byte count reported by the database. The latter is only available if the database user has access to v$ queries.

The throughput is output in bytes per second, typically prefixed by k or M for kilo og Mega, respectively being a factor of 1e3 or 1e6.

The goal of the utility is to generate Oracle Net traffic such that the actual network eventually will be the dominating bottleneck. The actual queries used to generate download or upload traffic are quite different in nature. For download the traffic comes from array fetches of wide character strings, and for upload the traffic comes from wide character strings used as bind values. The cpu requirement on both the client and the database side cannot be neglected and there is no guaranteed the full throughput will be tested. Also, real applications may have very different behavior on how data is be transmitted between the database and the client.

The utility only executes queries so no database objects are required.

WARNING

Both the client and the database side will have high CPU utilization and either side can therefore be limited by CPU. In that case, the figures reported are not showing the possible network throughput.

Note that your network can be saturated using when many streams are used.

If you get a warning that rampump is too short, the streams have not been running concurrently, and the results are unreliable. In that case, make a new run with the suggested rampup time.

EXAMPLE

netthroughput --download --concurrency=10 -ul username/{password}@//host/db --period=20


RWP*Load Simulator Release 3.0.2.20 Development on Mon, 19 Sep 2022 08:44:52 UTC
Connected default database to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Connecting sessions
All threads connected
Throughput test now running 20s
Throughput estimate 1.57 GB/s logical, 1.57 GB/s physical

The example shows the estimated download throughput from the database to the client using ten concurrent streams is 1.57 logical (and physical) Gigabytes per second.

The following example:

rm -f tp.csv
for cur in 2 4 6 8 10
do
  netthroughput --csvappend=tp.csv -l username/{password}@//host/db --concurrency=$cur --upload --download
done

will create the file tp.csv with five lines for 2 until 10 concurrent streams; each line has results for running upload and download concurrently. The file can be used as input to gnuplot.

If you alternatively want to use typical office software on a laptop, use the --csvexcel option and copy the csv file to your laptop.

NOTES

If you are using the full distribution of rwloadsim, netthroughput is an executable shell script in the bin directory that calls rwloadsim with the -u option getting netthroughput.rwl from the public directory. As a stand alone binary distribution, netthroughput is an executable with the netthroughput.rwl code embedded.

COPYRIGHT

Copyright © 2025 Oracle Corporation
Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl

SEE ALSO

rwloadsim(1rwl), utilities(2rwl)