How we simplified MySQL Tuning to improve Laravel Performance

How we simplified MySQL Tuning to improve Laravel Performance

Written by Roman Agabekov on Oct 20th, 2022 Views Report Post

Hi there,

My name is Roman, and I'm an engineer with ten years of experience in MySQL. I started the side project in 2020 to solve the problem around MySQL Performance Tuning to improve the performance of Web Apps. This article is the story behind it.

The Problem

The performance of web applications that rely on MySQL (like Laravel, Drupal, WordPress, and so on) largely depends on the database response speed.

MySQL Configuration Tuning is the first step before optimizing code to improve the performance of web applications because:

  1. Even perfectly optimized queries MySQL may execute slowly because it doesn't use enough memory.
  2. It is faster than optimizing and testing source code.

But before you start tuning, you should read the documentation, "best practices", and check the efficiency of your current MySQL configuration. And after that, you can create a MySQL configuration to improve performance.

To measure the efficiency, you could use the following tools:

  1. Monitoring tools. It requires you to install the monitoring tools, and most of them show you only the current speed of queries. You won't be able to view configuration efficiency.
  2. Scripts like MySQLTuner. To use MySQLTuner effectively, you need to learn MySQL documentation and how to interpret the MySQLTuner suggestions.

Neither of these options was ideal. They aren't simple.

The Solution

I started looking for existing applications that could measure the efficiency of the current MySQL configuration and recommend a new one to improve performance. My search did not turn up any good results.

So we decided to develop the Releem - MySQL Performance Tuning as a Service.

Imagine a tool like Google PageSpeed for MySQL that automatically measures the efficiency of your current MySQL Configuration and recommends changes to improve performance.😍

for-2.png

What is Releem

We built three components that work as a single solution:

  • Agent - Has been installed on servers, collects MySQL metrics, sends them to Cloud Platforms, and applies MySQL configurations.
  • Cloud Platform - Analyzes collected metrics, detects performance issues, and recommends MySQL configurations.
  • Customer Portal - Web interface displays recommended configurations and current information about all MySQL servers with installed Releem Agent. It looks like this on the screenshot. releem_dashboard.png

Releem includes following features:

  1. Recommended configurations to improve the performance of MySQL.
  2. MySQL Performance Score metric calculates by summarizing MySQL settings and status variables that describe the efficiency and "best practices" of using Memory, Connections, Logs, Cache, Disk, Indexes, and Threads.
  3. Simple one-step Agent installation.
  4. Graphs that show the current workload on the MySQL Server. Releem QPS.png
  5. Simple apply recommended MySQL configuration just in one command. ezgif-1-23a9e76f6a.gif

The Result

Now everyone can monitor the state of MySQL servers and get basic recommendations to improve application performance for Free. Just sign up and install the Releem agent on your server with a single command.

Not happy with your current performance? Moving to a premium plan, you can access our best configuration to improve MySQL Performance.

You can visit us and sign up to give it a shot at www.releem.com

P.S I'll be happy to get feedback on your experience with Releem.

Comments (0)