-
Notifications
You must be signed in to change notification settings - Fork 19
Measuring Oracle Net Throughput
Many database application transfer large amounts of data between the database and some client or application server, and often does that using one or many concurrent "streams" of data. This is in particular the case for data warehouse style applications that import or export to or from the database. There are often figures available for the transfer speeds of the physical network, but in addition to these, getting an actual measure on the "database wire" is in many cases valuable information.
As part of the RWP*Load Simulator, there is a tool that estimates the throughput from the database to the client. In addition to being part of the complete RWP*Load Simulator, this tool is also available completely stand-alone.
The netthroughput tool measures throughput by executing a query with the following properties:
- Each row returned is close to 16kB in size.
- Although not guaranteed random, each row is different from the previous and has a high entropy.
- The database time (purely CPU) is small compared to the network time such that the network time dominates.
- The array interface is used receiving a total of 64 rows or close to 1MB.
- The process is repeated to have sufficient data to give a reasonable estimate of actual throughput.
- One or more concurrent streams, each with their own database connection, are executed. The goal of this approach is to ensure network traffic dominates such that calculations of the transfer speed can be expected to truly represent Oracle Net throughput. The (almost) random and high entropy nature of the data should also ensure no or only little compression takes place.
To use the tool, credentials to connect to the database (username, password, connect string) are needed, and if these allow queries to v$ views, the results will include values based on physical byte counts. Otherwise, only ability to connect to the database is need and no schema objects are created or used.
A sample call and output is:
rwloadsim -ul username/{password}@//host/db --period=20 --concurrency=2 netthroughput.rwl
RWP*Load Simulator Release 3.0.2.11 Development on Wed, 14 Sep 2022 09:36:56 UTC
Connected default database to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Preparations taking up to 15 s
Pure database time per throughput query: mean 1.42 ms, stddev 0.00
Network and database time for throughput query: mean 7.81 ms, stddev 0.14
Connecting sessions
All threads connected
Actual throughput test now running 20 s
Throughput estimate 0.248 GB/s logical, 0.248 GB/s physical