Skip to main content

TimeBase Load Simulator

Introduction

TimeBase Load Simulator is a console utility that can be configured to simulate various types of load on TimeBase. The tool connects to an existing instance of TimeBase, launches a load simulation on a defined time period, and then stops.

You can use this tool to test TimeBase performance under various load scenarios. You can then get system metrics and monitor them in Grafana.

info

Refer to Monitoring to learn more about system metrics.

Available scenarios:

  • Data connectors: create n loaders to load market data to n streams at a fixed rate for a number of symbols.
  • Live cursors: create n cursors to read live data from n random streams.
  • Live cursors read all streams: create n cursors to read live data from all streams.
  • Historical cursors: create n cursors to read random data from a random stream.
  • Create extra streams: create n streams.

Launch

  1. Download and unpack the archive with application.
  2. In the bin folder, run timebase-load-sim script (works on Windows, Linux, and macOS).
  3. Run -help to get a list of available configuration parameters.
  4. Run commands to configure load simulation. Refer to Example.

Parameters

  • url: URL of the TimeBase connection. Default: dxtick://localhost:8011
  • user: TimeBase user.
  • pass: TimeBase user password.
  • duration: Duration of the load simulation in seconds.
  • loaders: Loaders count. Each loader creates a stream into which it writes data at a specified rate. Default: 10
  • cursors: Live cursors count. Each cursor subscribes to a random stream. Default: 10
  • cursor-connections: Number of TimeBase connections for live cursors. Example: -cursor 10 -cursor-connections 10 means that each cursor creates own TimeBase connection. Default: 1
  • all-streams-cursors: Live cursors count. Each cursor subscribes to all streams. Default: -cursors / 5
  • historical-cursors: Historical cursors count. Each cursor subscribes to a random stream from a random timestamp. Default: 0
  • historical-cursor-connections: Number of TimeBase connection for historical cursors. Default: 1
  • load-rate: Loading rate in messages/second. Default: 3000
  • book-levels: Order book size loading data. Default: 50
  • symbols: Number of symbols a loader can write. Default: 30
  • purge-interval: Interval between purges in seconds. During purge, all streams will be purged from the current time minus 10 seconds. Default: 0 - switched off.
  • load-duration: Loading duration in seconds. Default: duration
  • read-duration: Live reading duration in seconds. Default: duration
  • extra-streams: Number of extra streams that will be created prior the simulation start. Default: 0
Examples
# get a list of parameters

-help

# command example

./timebase-load-sim -url dxtick://localhost:8011 -duration 7200 -loaders 20 -cursors 20 -cursor-connections 5 -load-rate 3000 -symbols 50 -purge-interval 3600

./timebase-load-sim -url dxtick://localhost:8011 -duration 7200 -historical-cursors 20 -loaders 0 -cursors 0 -cursor-connections 0 -load-rate 0 -symbols 0 -purge-interval 0