Skip to main content
Version: 2.5.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 ChronoLog is Running

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

pgrep -fla "chrono-visor|chrono-grapher|chrono-keeper|chrono-player"

If this command does not show all four ChronoLog services, it means ChronoLog is not running properly. In that case, follow the instructions in the First Steps with ChronoLog tutorial to set up and start the system.


Step 2: Prepare the Payload file (Optional)

We will use Scripted Client Admin to run a performance test. To do this, create a payload file (e.g., payload.txt) 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:

./chrono-client_admin -f payload.txt -c /home/$USER/chronolog-install/chronolog/conf/default-chrono-client-conf.json --perf

Breakdown of the Command

  • -f payload.txt: Specifies the payload file containing all event payloads, one event per line.
  • -c /home/$USER/chronolog-install/chronolog/conf/default-chrono-client-conf.json: Points to the system's configuration file for clients.
  • --perf: Enables performance testing mode.

Step 4: Analyze the Output

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

Parameters

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

Config file specified: /home/$USER/chronolog-install/chronolog/conf/default-chrono-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-install/chronolog/conf/default-chrono-conf.json

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 ********

Performance Results

Finally, the system will display the performance test results:

======================================
======== Performance results: ========
======================================
Total payload written: 1638400000 bytes
Connect throughput: 844.619 connections/s
CreateChronicle throughput: 4093.63 creations/s
AcquireStory throughput: 554.781 acquisitions/s
ReleaseStory throughput: 247.978 releases/s
DestroyStory throughput: 1119.15 destructions/s
DestroyChronicle throughput: 6111.26 destructions/s
Disconnect throughput: 217.764 disconnections/s
End-to-end (incl. metadata time) bandwidth: 209.729 MB/s
Record-event (incl. metadata time) bandwidth: 26.8209 MB/s
Record-event (incl. metadata time) throughput: 0.00654807 events/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!