./bin/burden <options> [<args>...]
Sets the location where the archive information will be saved.
Tells burden it is a child of another burden process and not to perform the initial setup work.
Number of times we attempt to create an instance to get the desginated cpu type.
Number of seconds to timeout on git requests. Default is 60.
aws, azure, gcp, ibm or local.
Specification of the system and configuration. Possible values are "cloud" and "local".
If the --system_type option is local, then this is simply the system name to run on, and it will pull the config value from the file .conf in the local_configs directory. For more information on local_configs, please see the local_configs README.
If the --system_type option is cloud, then the following fields may be specified in the config file:
- instance type: The cloud instance (ie i3en.xlarge). Inclusion of [region=<value>&zone=<value>] is optional.
- region: The region where the cloud is created. The default option is the user's default region.
- zone: The zone within the region the cloud will be created in. Randomly chosen by default.
If present we will ignore repo errors, default is to abort the run when a repo error occurs.
Contains various burden settings. Takes precedence over the scenario file, but is overridden by the command line. Default is config zathras_specific_vals_def.
Java version to install: java-8, java-11, java-17, or java-21.
Full path to directory uploading to. If not present, Zathras will locate the filesystem with the most space on it and use that location.
Maximum number of burden subinstances that will be created from the parent. Each subinstance is a cloud or local system. 3 is the default.
Do not cleanup at the end of the test.
Do not install any packages, default is no.
Do not install python pip packages, default is no.
Do not install system packages via dnf/apt/zypper/etc, default is no.
Do not recover from a spot system going away.
Currently rhel, ubuntu, amazon, suse, azurelinux.
Use this set of packages to override the default in the test config file instead of the default. Default format package name <os>_pkg, new name <os>pkg<ver>.
If set to 0, pcp will not be used by the wrappers. If set to 1, pcp will be used by the wrappers. Default is 1.
Enable persistent logging.
Performs various checks on the scenario file, and Zathras and then exits.
Run directory prefix
Indicates to retry any detected failed tests if set to 1 (1 is the default).
After tests complete, runs Chronicler to parse benchmark archives and export to OpenSearch. Requires a pip-installed package: pip install 'chronicler[opensearch]'.
Export settings are resolved the same way as the Chronicler CLI (in order): environment variable CHRONICLER_CONFIG (path to YAML), export_config.yml next to the installed Chronicler package, or under the Zathras top directory (export_config.yml, config/export_config.yml). If none of those exist, a legacy path is supported: <zathras-top>/../chronicler/config/export_config.yml.
Chronicler runs with the Zathras top directory as working directory so relative config paths apply.
When --archive is set, benchmark output is copied under <archive>/<run_prefix>/.... Chronicler’s --input is set to <archive>/<run_prefix> when that directory exists, so export matches the current run; otherwise the archive root is used (for older layouts that stored runs directly under <archive>).
Same as --run_chronicler, but burden exits with an error if the Chronicler package is missing, no export configuration is found, the results input directory is missing, or the Chronicler export step fails. Use this in CI when OpenSearch export must succeed.
Equivalent: --run_chronicler with environment CHRONICLER_STRICT=1.
Optional environment variables
| Variable | Effect |
|---|---|
CHRONICLER_CONFIG |
Path to Chronicler export YAML (recommended for automation). |
CHRONICLER_STRICT=1 |
Treat Chronicler failures as burden failures (with --run_chronicler). |
CHRONICLER_VERBOSE=1 |
Passes --verbose to Chronicler. Same effect as --ansible_noise_level dense. |
If config discovery throws an exception (for example an import or resolution error), the exception type and message are included in burden’s error output when CHRONICLER_VERBOSE=1, --run_chronicler_strict / CHRONICLER_STRICT=1, or --ansible_noise_level dense is in effect; otherwise you still get the generic “no export config found” style message when no config can be resolved.
Reads in a scenario and then runs it (if used, host configs are designated in the file).
If the scenario name starts with https: or git:, then the scenario file is retrieved from a git repo.
If the line in the scenario file starts with #, then that line is a comment.
If the line starts with a %, it indicates to replace the string.
Format to replace a string % <current string>=<new string>
File that contains the variables for the scenario file, default is config/zathras_scenario_vars_def.
enforcing/permissive/disabled. The setting to have in /etc/selinux/config file. Note: Zathras does not support enforcing in Ubuntu at this time.
disabled/enabled. If disabled is selected, selinux will be disabled via grubby (Amazon and RHEL). For Ubuntu, enabled will install the require packages, update the config file and reboot.
Designates the ssh private key file we are to use.
Designates the ssh public key file we are to use. Optional — if not set, only the private key specified by --ssh_key_file is used.
Given the cloud type and OS vendor, show the available operating system versions.
List the available test as defined in config/test_defs.yml
Skip the initial check of test wrapper versions and just use what we have
Test definition file to use.
Test definition directory. Default is <execution dir>/config. If https: or git: is at the start of the location, then we will pull from a git repo.
Overrides the given options for a specific test in the scenario file.
testname, you may use "test1,test2" to execute test1 and test2.
How many iterations of the test to run (includes linpack). For cloud instances, this will terminate the cloud image and start a new image for each iteration.
Shows the versions of the test the are available and brief description of the version. This only applies to git repos
Checks to see if we are running the latest versions of the tests and exits out when done. Default is no.
List active systems created via tf (terraform?).
Delete the designated terraform systems.
Go into each terraform directory and attempt to remove the terraform instance.
Note: only for RHEL. Designates the tuned profiles to use. if the system type is a cloud environment, then each tuned profile is a distinct cloud instance.
Note: only for RHEL. If value is 1 we will reboot the system each time a new tuned profile is set.
Verbose usage message.
Comma separated list of rpms (full path) to upload and install.
Image to update.
Note: only 1 update image can be used, makes no difference if designate a different one for each system in the scenario file, the first one will be used.
Will update the templates so we are using the latest versions of the test (git repos only).
Condensed usage information.
Image of the OS to install (example aws aminumber) For multiple architectures, this is allowed" x86:ami-0fbec8a0a2beb6a71,arm64:ami-0cfa90ca3ebfc506e" Burden will select the right ami for the designated host."
Only do the VM creation and OS install action.
If 1, terminate the cloud instance, if 0 leave the cloud image running. Default is to terminate.
Uses spot pricing based on the contents of config/spot_price.cfg. Default is not to use spot_pricing
How much information ansible is to output. Options: normal (standard ansible output), dense (just report the task executed), silence (nothing reported).
Force upload of files even if they already exist on the target system.
Operating mode. Use 'image' for bootc-based hosts (skips packages, uses safe upload paths).
Name of the user to log into the system with. This setting will override the defaults based on cloud or local system.
Will update the templates so we are using the latest versions of the test (git repos only).