The performance of web applications that rely on MySQL, largely depends on the database response speed.
It annoys me that only experienced engineers can tune MySQL configuration to improve the performance, and even they spend a lot of time on this task.
I spent hundreds of hours tuning MYSQL configuration to improve performance of different web apps...
The MySQL configuration tuning process is clear. It includes the following steps:
- Read the docs.
- Learn the best practices.
- Analyze the monitoring data.
- Analyze the MySQL status.
- Use the scripts to get recommendations.
- Determine which settings would yield the best performance.
- Create the MySQL configuration file.
- Apply the configuration file.
I’ve gone far and wide in search of applications that could tune MySQL for best performance, preferably in the fully automatic mode. My search did not return a solution that could be called good, let alone perfect.
So I decided to develop one myself…
I teamed up with my friends, experienced software engineers, and we built Releem.
It’s kind of like a virtual assistant for software engineers.
Here is what it does:
- Collects MySQL status metrics, system information from the server, and transfers them to Releem platform.
- Analyzes the collected metrics and detects performance issues, fully automatic.
- Alerts of the MySQL performance issues found.
- Automatically generates a conf file tailored to your server, with the parameters to boost MySQL performance.
We’ve been testing it for 9 months with one thousand servers, and I am now excited to report that the tool does save time and resources by improving MySQL configuration and significantly boosting its performance in most cases.
Using this tool developers can focus on improving their products without worrying about gaining a depth knowledge of the MySQL database backend domain.
I published the screencast to explain how it works.
What do you think of this approach to MySQL performance tuning?