Using Bayesian Optimization to tune Kubernetes application
- Mentors
- Dinakar Guniguntala, Sanjay Arora
- Organization
- JBoss Community
- Technologies
- python, java, machine learning
- Topics
- machine learning, kubernetes, bayesian optimization, autotune, prometheus
Description:Kruize Autotune is a Performance Tuning Tool for Kubernetes. . It uses Hyper Parameter Optimization to tune the language runtime layers of a given application.
System component metrics can give a better look into what is happening inside them. Metrics are particularly useful for building dashboards and alerts.
Kubernetes components emit metrics in Prometheus format. This format is structured plain text, designed so that people and machines can both read it.Following are four common methods of hyperparameter optimization for machine learning in order of increasing efficiency:
1.Manual
2.Grid search
3.Random search
4.Bayesian model-based optimization
The aim of Bayesian reasoning is to become “less wrong” with more data which these approaches do by continually updating the surrogate probability model after each evaluation of the objective function.
At a high-level, Bayesian optimization methods are efficient because they choose the next hyperparameters in an informed manner. The basic idea is: spend a little more time selecting the next hyperparameters in order to make fewer calls to the objective function. In practice, the time spent selecting the next hyperparameters is inconsequential compared to the time spent in the objective function. By evaluating hyperparameters that appear more promising from past results, Bayesian methods can find better model settings than random search in fewer iterations.So,this project aims at tuning kubernetes applications using bayesian optimization.