# BestConfig: Tapping the Performance Potential of Systems via Automatic Configuration Tuning

arXiv: https://arxiv.org/abs/1710.03439 · HTML: https://mlsanity.com/paper/1710.03439/

## Key facts

- Cited by 25 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 10 Oct 2017.

## Built on by (most cited first, 25 of 25)

- [Multi-Objectivizing Software Configuration Tuning (for a single performance concern)](https://mlsanity.com/paper/2106.01331/) (2021)
- [Do Performance Aspirations Matter for Guiding Software Configuration Tuning?](https://mlsanity.com/paper/2301.03290/) (2023)
- [MMO: Meta Multi-Objectivization for Software Configuration Tuning](https://mlsanity.com/paper/2112.07303/) (2021)
- [Adapting Multi-objectivized Software Configuration Tuning](https://mlsanity.com/paper/2404.04744/) (2024)
- [Dually Hierarchical Drift Adaptation for Online Configuration Performance Learning](https://mlsanity.com/paper/2507.08730/) (2025)
- [VDTuner: Automated Performance Tuning for Vector Data Management Systems](https://mlsanity.com/paper/2404.10413/) (2024)
- [Is Large Language Model Good at Database Knob Tuning? A Comprehensive Experimental Evaluation](https://mlsanity.com/paper/2408.02213/) (2024)
- [JITuNE: Just-In-Time Hyperparameter Tuning for Network Embedding Algorithms](https://mlsanity.com/paper/2101.06427/) (2021)
- [Database Workload Characterization with Query Plan Encoders](https://mlsanity.com/paper/2105.12287/) (2021)
- [Dividable Configuration Performance Learning](https://mlsanity.com/paper/2409.07629/) (2024)
- [Rover: An online Spark SQL tuning service via generalized transfer learning](https://mlsanity.com/paper/2302.04046/) (2023)
- [ML-Powered Index Tuning: An Overview of Recent Progress and Open Challenges](https://mlsanity.com/paper/2308.13641/) (2023)
- [CoTune: Co-evolutionary Configuration Tuning](https://mlsanity.com/paper/2509.24694/) (2025)
- [Magpie: Automatically Tuning Static Parameters for Distributed File Systems using Deep Reinforcement Learning](https://mlsanity.com/paper/2207.09298/) (2022)
- [Towards General and Efficient Online Tuning for Spark](https://mlsanity.com/paper/2309.01901/) (2023)
- [HPC Application Parameter Autotuning on Edge Devices: A Bandit Learning Approach](https://mlsanity.com/paper/2501.01057/) (2025)
- [Evaluating Useful Surrogate Models for Configuration Tuning Beyond Accuracy: A Fitness Landscape Analysis Perspective](https://mlsanity.com/paper/2509.21945/) (2025)
- [L2T-Tune:LLM-Guided Hybrid Database Tuning with LHS and TD3](https://mlsanity.com/paper/2511.01602/) (2025)
- [Sayer: Using Implicit Feedback to Optimize System Policies](https://mlsanity.com/paper/2110.14874/) (2021)
- [KnobTree: Intelligent Database Parameter Configuration via Explainable Reinforcement Learning](https://mlsanity.com/paper/2406.15073/) (2024)
- [Selective Use of Yannakakis' Algorithm to Improve Query Performance: Machine Learning to the Rescue](https://mlsanity.com/paper/2502.20233/) (2025)
- [Relation-Aware Bayesian Optimization of DBMS Configurations Guided by Affinity Scores](https://mlsanity.com/paper/2510.27145/) (2025)
- [LLMSYS-HPOBench: Hyperparameter Optimization Benchmark Suite for Real-World LLM Systems](https://mlsanity.com/paper/2605.08305/) (2026)
- [A Case for Agentic Tuning: From Documentation to Action in PostgreSQL](https://mlsanity.com/paper/2605.19988/) (2026)
- [Reinforcement Learning based DBMS Buffer Pool Auto-Tuning for Optimal Memory Utilization](https://mlsanity.com/paper/2608.11239/) (2026)

## Abstract (arXiv)

An ever increasing number of configuration parameters are provided to system users. But many users have used one configuration setting across different workloads, leaving untapped the performance potential of systems. A good configuration setting can greatly improve the performance of a deployed system under certain workloads. But with tens or hundreds of parameters, it becomes a highly costly task to decide which configuration setting leads to the best performance. While such task requires the strong expertise in both the system and the application, users commonly lack such expertise. To help users tap the performance potential of systems, we present BestConfig, a system for automatically finding a best configuration setting within a resource limit for a deployed system under a given application workload. BestConfig is designed with an extensible architecture to automate the configuration tuning for general systems. To tune system configurations within a resource limit, we propose the divide-and-diverge sampling method and the recursive bound-and-search algorithm. BestConfig can improve the throughput of Tomcat by 75%, that of Cassandra by 63%, that of MySQL by 430%, and reduce the running time of Hive join job by about 50% and that of Spark join job by about 80%, solely by configuration adjustment.
