Skip to main content
Version: 2.4.0

How to Run a Performance Test

Introduction

Welcome to the second tutorial for ChronoLog! In this tutorial, we will run a performance test on the system using the Scripted Client Admin tool. By the end of this guide, you'll be able to execute a scripted test and analyze the system's performance metrics.

Prerequisites

Before starting, ensure that you have completed Tutorial 1 (First Steps with ChronoLog), where we set up the system and ran the first test. This tutorial assumes that your ChronoLog system is already running.


Step 1: Verify System is Running

To check if ChronoLog is running, execute the following command:

pgrep -laf "chronovisor_server|chrono_grapher|chrono_keeper|chrono_player"

If this command does not return any output, it means ChronoLog is not running. In that case, follow the instructions in the First Steps with ChronoLog tutorial to set up and start the system.


Step 2: Prepare the Scripted Client Admin Test

We will use Scripted Client Admin to run a performance test. To do this, create a script file (e.g., scripted.sh) containing a set of messages to be sent during the test.

Example:

event 1
event 2
event 3
event 4
event 5
event 6
event 7
event 8
event 9
event 10

Step 3: Run the Performance Test

Execute the following command to start the performance test:

./client_admin -f scripted.sh -c /home/$USER/chronolog/Debug/conf/default_conf.json --perf

Breakdown of the Command

  • -f scripted.sh: Specifies the script file containing test commands.
  • -c /home/$USER/chronolog/Debug/conf/default_conf.json: Points to the system's configuration file.
  • --perf: Enables performance testing mode.

Step 4: Analyze the Log Output

Once you run the test, the log will display several sections, including system status, configuration details, and performance results.

1. System Run Mode

After executing the command, you will see the system's operational status:

Config file specified: /home/$USER/chronolog/Debug/conf/default_conf.json
Interactive mode: off
Chronicle count: 1
Story count: 1
Event input file specified: scripted.sh
Barrier: false
Shared story: false
[ConfigurationManager] Loading configuration from file: /home/$USER/chronolog/Debug/conf/default_conf.json

2. Configuration Details

The system will then output its configuration settings:

******** Start of configuration output ********
CLOCK_CONF: CLOCKSOURCE_TYPE: CPP_STYLE, DRIFT_CAL_SLEEP_SEC: 10, DRIFT_CAL_SLEEP_NSEC: 0
AUTH_CONF: AUTH_TYPE: RBAC, MODULE_PATH: /path/to/auth_module
...
CLIENT_CONF: [VISOR_CLIENT_PORTAL_SERVICE_CONF: [RPC_CONF: [PROTO_CONF: ofi+sockets, IP: 127.0.0.1, BASE_PORT: 5555, SERVICE_PROVIDER_ID: 55, PORTS: ]], CLIENT_LOG_CONF:[TYPE: file, FILE: chrono_client.log, LEVEL: DEBUG, NAME: ChronoClient, LOGFILESIZE: 1048576, LOGFILENUM: 3, FLUSH LEVEL: WARN]]
******** End of configuration output ********

3. Performance Results

Finally, the system will display the performance test results:

======================================
======== Performance results: ========
======================================
Total payload written: 229
Connect throughput: 895.689 op/s
CreateChronicle throughput: 1870.4 op/s
AcquireStory throughput: 640.482 op/s
ReleaseStory throughput: 1341.22 op/s
DestroyStory throughput: 10957.6 op/s
DestroyChronicle throughput: 10387.3 op/s
Disconnect throughput: 11117.4 op/s
End-to-end bandwidth: 0.0491442 MB/s
Data-access bandwidth: 0.143056 MB/s

These values provide insight into how efficiently ChronoLog is handling operations.

Conclusion

Congratulations! You have successfully run a performance test on ChronoLog using the Scripted Client Admin tool. This process allows you to measure system throughput and analyze performance under different conditions.

If you encountered any issues, double-check that the system is running and verify your script file. For additional support, refer to the First Steps with ChronoLog tutorial or reach out to the ChronoLog community.

Stay tuned for the next tutorial!