tsexperiment

Name
TS Experiment - standalone agent to run TSLoad experiments

Synopsis
$ tsexperiment [global options] subcommand [options and arguments]

Description
Where global options are:

Experiment constsists of current config and several "runs", that contain versions of config (maybe with altered parameters) and experiment results. Experiment config is a file named experiment.json Each run identified by it's unique number called runid.

List capabilities

$ tsexperiment info [CAPABILITY] [-x] [-H] [-l] [-j] [NAME]...
Lists supported TSLoad Core capabilities with it's parameters. If NAME arguments are specified, shows only information on desired capabilities.

Options:

Output description for workload types

Output columns for workload types:

Output columns for workload params:

Working with experiments

Show information about experiment

tsexperiment -e <experiment_path> list
Lists experiment runs

Output columns:

tsexperiment -e <experiment_path> show [-j] [-l] [RUNID]
Shows experiment run information and config: enlists global options such as runtime, information of host where experiment was run, workloads and threadpools.

Options:

Running experiments

tsexperiment -e <experiment_path> run [-n name] [-s param=value] [-b] [-T] [RUNID]
Creates new experiment run and starts it

Options and arguments:

Running experiments in batch mode

Batch mode is intended to run set of experiments from shell-script and enabled by setting -b option. In this mode tsexperiment doesn't print information about course of experiment (it is still saved in <run_directory>/tsexperiment.out file) and only prints runid to stdout so you can use it in your script. For example you may write bash script:

#!/bin/bash
EXPERIMENT=/var/tsload/sample/
RUNID=$(tsexperiment -e $EXPERIMENT run -b)
tsexperiment -e $EXPERIMENT show $RUNID

Also experiment config variables may be altered by using -s option, where param name is path to JSON node inside config. I.e:

run -s threadpools:tp_test:num_threads=10
run -s workloads:workload1:params:cycles:pmap:0:probability = 0.3

Working with experiment results

tsexperiment -e <experiment_path> report RUNID [WL]...
Show some statistics report about experiment run. If WL arguments are specified than tsexperiment reports only particular workloads. RUNID argument is mandatory.

Output columns:

tsexperiment -e <experiment_path> export [-d DEST] [-F csv|json|jsonraw] [-o option] [-o wl_name:option] RUNID [WL]...
Export workload measurement data into text files

Options:

Exit status

If command was successfully executed, tsexperiment returns 0 as exit status. If invalid command line was passed to tsexperiment it returns one of the values from range {1..5}. In case of other failures, it will return 30 (CMD_GENERIC_ERROR code), or one of the well known error codes from range {11..14}.

Code Mnemonic Description
Basic errors
0 CMD_OK Everything went fine
1 CMD_MISSING_CMD Subcommand is missing from command line
2 CMD_UNKNOWN_CMD Unknown subcommand
3 CMD_INVALID_OPT Incorrect option was specified or option needs argument
4 CMD_INVALID_ARG Invalid option or argument value (like negative integer)
5 CMD_MISSING_ARG Required option or argument is missing
Experiment errors
11 CMD_NOT_EXISTS Needed file not exists
12 CMD_NO_PERMS Insufficient permissions to read or write on of the files
13 CMD_ALREADY_EXISTS TSExperiment tried to create file, but it is already exists
14 CMD_IS_ROOT Some operation that TSExperiment had tried to perform on root experiment only allowed for experiment runs
30 CMD_GENERIC_ERROR All other errors

Experiment errors will be accompanied with EXPERR error code printed to standard error output.