The required settings (shown in order) are as follows.

<host> <port> <log> <num connections> <num iterations>

Their usage is as follows.

MDEX Engine request logs can be used as Eneperf input with some modifications.

URLs in the log should not include any machine connection parameters such as protocol, host, or port. These are added automatically. For example, a log entry of the following form is valid:

/graph?node=0

But a log entry of the following form is not valid:

http://myhost:5555/graph?node=0

You can achieve higher concurrent load by using a single large request log file (which might simply be repeated concatenations of a smaller log file) than by using multiple iterations of a small log file. The log file should preferably be at least 100 lines, even if it consists of the same query repeated over and over. Because Eneperf drains all connections between each iteration, running a one-line log file through Eneperf 100 times results in skewed throughput statistics.

If you are planning to measure performance of partial updates with Eneperf, (as opposed to measuring performance of regular queries), create a separate updates log based on your existing request log.

That is, suppose your MDEX Engine request log contains both regular queries and updates operations. Then your updates log should contain only config?op=update operations. You can create this updates log manually, by extracting these operations from a regular log. You can then run Eneperf against the updates log and the regular log, to measure the performance of your updates, by using the --updates-log and the --log settings together.

Eneperf load is driven by the num connections setting, which indicates the number of simultaneous connections Eneperf tries to maintain at a time.

For example, if num connections is set to 4, it sends four requests to the MDEX Engine. When one returns, another is sent out to replace it.

To adequately measure performance of the MDEX Engine, you need to identify the number of connections for Eneperf that saturates the MDEX Engine thread pool.

The number of connections needed to saturate the MDEX Engine depends on the MDEX Engine threading configuration and the server characteristics, and generally correlates with the number of the MDEX Engine threads in use, (assuming the MDEX Engine is configured with enough threads). However, an MDEX Engine with four threads might be saturated by only three connections if the queries are complex and all CPUs are being fully utilized.

To identify an appropriate setting for num connections, Oracle recommends running tests with the following settings:

Commonly, you will wish to perform the load testing of the MDEX Engine to a level below saturation. Use the following examples to help you select an appropriate number of connections for Eneperf that will saturate MDEX Engine performance to the desired levels.

Typically, front-end applications have different requirements for response times and peak loads. Such as:

To identify the projected throughput for the MDEX Engine, use the following formulas.

These formulas represent a highly simplified approach to calculating throughput. Although you can use more thorough methods, these formulas provide reasonable estimates, and can be used for initial assessment:

concurrent users / (expected page latency + think time) = page views/sec
page views / second x MDEX queries/page = ops/second for the MDEX Engine

Where:

For example, 100 concurrent users with a 5 second think time and a 1 second expected page latency will yield 17 pages/sec. 17 pages/second with 2 MDEX Engine queries per page will yield 34 ops/sec for the expected performance of the MDEX Engine. This means that to support 100 concurrent users in this application, the MDEX Engine must perform at 34 ops/sec.

In another example, if your implementation includes a load balancer serving four application servers, and two MDEX Engines with another load balancer, the following calculations provide you with the estimated performance for each of the MDEX Engines:

This means that to support 100 concurrent users in this application, each MDEX Engine must perform at 120 ops/sec.

To summarize, you can use these recommendations to identify the number of connections (equal to the number of simultaneous requests in these examples) that you need to provide to Eneperf to achieve the desired MDEX Engine performance.


Copyright © Legal Notices