Skip to content


The below describes the required steps to get started with using Concertio Optimizer Studio software.
While Optimizer Studio can run under any modern Linux distribution, the directions below have been tested on Ubuntu 18.04, Ubuntu 16.04, CentOS 6 and CentOS 7.

Activating Your License

Prior to using the Optimizer Studio, you'll have to activate your license. In order to do so you'll need to use the optimizer-studio-license tool:

$ optimizer-studio-license

Concertio Optimizer Studio License Handling Tool

Online documentation is available at 

Usage: optimizer-studio-license ACTION [--verbose]

Required one of the following ACTIONs:

  --activate=PROD_KEY               Online Activation of your installation using the product key [PROD_KEY].
  --deactivate                      Online Deactivation of your installation.
  --activation-request=PROD_KEY     Generate an offline activation request file named <activation.req> using
                                    the product key [PROD_KEY].
  --activation-by-file=FILE_PATH    Offline activation using the activation response file [FILE_PATH].
  --deactivation-request            Generate an offline deactivation request file <deactivation.req>.
  --help                            Print this help message.


  --verbose                         Detailed output.

If your system is connected to the internet you can use the online activation:

$ optimizer-studio-license --activate=XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX

(XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX is the license key you received when you purchased the Optimizer Studio).

Otherwise, if your system is offline the procedure is as follows-

First you'll need to generate a request file:

$ optimizer-studio-license --activation-request=XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX

This will generate a request file named activation.req, you should copy this file and send it as attachment by email to Concertio (

Next, in a reply email you'll receive an activation file. You should copy the file to your system and execute the command:

$ optimizer-studio-license --activation-by-file=FILE_PATH

(FILE_PATH is the file path of the activation file).


In case you wish to deactivate your license (for example, if you wish to use your license on a different system), you should use the following command (if your system is online):

$ optimizer-studio-license --deactivate

Alternatively, if your system is offline, you should use:

$ optimizer-studio-license deactivation-request

This will generate a deactivation request file named deactivation.req. You should email this file to Concertio.

Using Optimizer Studio

For a brief description of available command line parameters, issue:

$ optimizer-studio

Concertio Optimizer Studio, version 1.18 (build time: Jan 16 2019, 20:00:00)
AI-Powered performance optimization tools
License information: EVALUATION (not intended for on-going commercial use) valid until: October 02, 2018

Online documentation is available at 

Usage: optimizer-studio [OPTION] [OPTION] ... <workload> [workload args]
       optimizer-studio [OPTION] [OPTION] ...

Command line options:
  --sampling-mode=MODE    Select sampling mode. MODE may be either [sync], async:
                          sync   - sampling is synchronized with workload execution
                          async  - periodic sampling with constant intervals
  --settings=PATH         Path to settings YAML file. By default settings.yaml
  --knobs=PATH            Path to configuration YAML files. When no configuration file(s)
                          have been provided, the embedded configurations are used.
                          Each file specified on a command line may override
                          settings defined in a previous configuration file
  --knobs=embedded        Load embedded configuration file, even though other configuration file(s)
                          has been specified
  --retain                Retain optimization data from previous Optimizer Studio run
  --workload-timeout=N    Maximum time allowed for a single workload run, after which it is killed
                          The format for N: AhBmCs, for hours, minutes and seconds
  --max-minutes=N         Maximum optimization time. If not specified, the optimization process
                          ends according to internal logic
  --testknob=KNOB-NAME    Run testing procedure for a knob identified by KNOB-NAME and exit
  --testknob=all          Run testing procedure for all knobs and exit
  --settings-script=PATH  The name of generated script that applies the optimal settings discovered
                          throughout the run. If not specified, the name is defined automatically
  --report=status         Output a status report of already running Optimizer Studio session. Should
                          be run from another terminal session
  --session=SESSIONID     An Optimizer Studio session ID, in case there are several sessions running
                          simultaneously. SESSIONID is printed out on the terminal at the beginning
  --help                  Display this help message

Running Optimizer Studio

In order to optimize a workload, provide a workload script as a parameter, as follows:

$ sudo optimizer-studio ./my_workload
Concertio Optimizer Studio version 1.3
Optimizing ./my_workload
Optimization target: duration
Starting runtime (no time limit) ...
Optimization time: 00:06:23
Progress: 100%
Best known knob settings so far:
vm.swappiness: 60
sys.vm.overcommit_ratio: 40
Settings written to:

In this example, the script my_workload is optimized by Optimizer Studio. Since no configuration file is specified, Optimizer Studio defaults to optimizing CPU and OS knobs. Optimizing these knobs requires root access, so this is why Optimizer Studio is run using sudo.

There are two main ways to use Optimizer Studio to optimize a workload:

  • Synchronous Sampling (Optimizing Full Workloads) - This is the default optimization mode. Optimizer Studio will run the workload until completion several times and will attempt to minimize its runtime or maximize its reported metric using different system settings. This method is appropriate for complex workloads.
  • Asynchronous Sampling (Optimizing Specific Metrics) - By specifying --sampling-mode=async, Optimizer Studio will identify phases of execution of a workload and explore the best settings for each phase. This method is appropriate for simpler or synthetic workloads, where early feedback of application performance can be used to run many more experiments.

The specifics of the optimization method can be controlled using the configuration files.

Workload Settings

Optimizer Studio is responsible for running the workload provided by workload script. There are several command line parameters that control the way Optimizer Studio runs the workload:

--max-minutes. The maximum optimization time can be limited by this parameter. If it's not specified or is zero, Optimizer Studio will terminate the optimization process according to its estimations.
--settings-script. After optimization, Optimizer Studio outputs the discovered optimal settings and the baseline settings to this file, which can run as a script.

Running workloads as a non-root user while optimizing OS/CPU knobs

Optimizer Studio requires root access when optimizing OS and CPU knobs. It is possible to run the workload as the current user using su as in the following example:

$ sudo optimizer-studio su - $USER -c "./"

Running Long Workloads

Status Report

During optimization session, Optimizer Studio prints out a short line about its progress. If a user wants to get more detailed information about optimization session status, they can open another terminal session and run the following command:

$ optimizer-studio --report=status

In case that more than one optimization session run at the same time on the same computer, an additional --session command line parameter can be used:

$ optimizer-studio --report=status --session=<SESSION_ID>

where the session ID value is output to the terminal at the beginning of the optimizer session

Workload Timeout

Sometimes, a workload script can run too long time or even indefinitely. In such cases a user might want to limit a single workload run time with the --workload-timeout command parameter. In case that workload script runs more than the allowed time, Optimizer studio will kill it using SIGKILL signal, and the corresponding knob settings will be invalidated.
The format for time specification is AhBmCs where A, B, C specify correspondingly hours, minutes and seconds. For example:

$ optimizer-studio --knobs=<my_knobs.yaml> --workload-timeout=5m ./

Configuring Knobs

Optimizer Studio can optimize user-defined knobs by providing a configuration file. This is explained in the Configuration section.

Retaining Optimization Data

Optimizer Studio stores the optimization data in /root/.concertio/ By default, upon invocation of Optimizer Studio, this file is removed. In order to retain the data from the previous run, the --retain command line parameter can be used:

$ sudo optimizer-studio --retain ./my_workload

Using the optimization results

Optimizer studio stores the results of the optimization in a script, as configured in settings.yaml. This script can be used to apply the discovered results:

$ sudo ./ tuned
Concertio Optimizer Studio version 1.0, build date 2018-01-24
Loading optimized settings for ./my_workload
Created on: 2018-01-25 23:23:12
Applying tuned settings

To revert to baseline, use:

$ sudo ./ baseline
Concertio Optimizer Studio version 1.0, build date 2018-01-24
Loading optimized settings for ./my_workload
Created on: 2018-01-25 23:23:12
Applying baseline settings