How OtterTune Works

Overview of how OtterTune interacts with your database to optimize its performance.
OtterTune is a database management system (DBMS) configuration monitoring and tuning service. It uses machine learning to automatically optimize the knob configuration of databases to improve their performance. An overview of how OtterTune works is shown below:
  1. 1.
    To connect your database to OtterTune, you provide the service with information about where to find your database (e.g., Amazon ARN).
  2. 2.
    You next deploy the OtterTune Agent in your data center with credentials to access the target database.
  3. 3.
    The OtterTune Agent connects to the database to retrieve the necessary information. OtterTune only requires access to retrieve the database's runtime metrics and configuration information (knobs). For table-level health checks we also collect table names and schema names in addition to table-level metrics. The Agent sends the database's information to its Repository that keeps track of all previous tuning data.
  4. 4.
    OtterTune's Compute Engine then trains machine learning models that predict how the database's tuning objective will change based on its configuration knobs.
  5. 5.
    The Compute Engine generates a new configuration recommendation for the database. It then sends this recommendation to the Agent to install on the database.
Five-Minute Overview Video of OtterTune


A DBMS's metrics are counters that record the activities of its internal runtime components. Engineers add these metrics to enable DBAs and monitoring tools to observe the system's behavior and diagnose performance problems. OtterTune uses the runtime metrics to learn the cost/benefit of the knobs under varying conditions and make informed recommendations.


A DBMS's configuration knobs control aspects of its runtime operations. The three categories of knobs are (1) resources, (2) policies, and (3) locations. Knobs in the first category specify how much of a resource the system uses for a task. These can be either for fixed components (e.g., the number of garbage collection threads) or for dynamic activities (e.g., the amount of memory to use per query). Policy configuration knobs control how the DBMS behaves for specific tasks. For example, a knob can control whether the DBMS flushes the write-ahead log to disk when a transaction commits. Lastly, the location knobs specify where the DBMS finds resources that it needs (e.g., file paths) and how it interacts with the outside world (e.g., network port number).
OtterTune optimizes resource and policy knobs for an application's workload to improve performance. Like runtime metrics, a DBMS's configuration knobs are not standardized across systems. OtterTune automatically learns which knobs have the most impact on performance and efficiency for each DBMS.