Skip to content

Another Boring Tech Blog

Menu
  • Start
  • About Me
Menu

How To Estimate Redo Log Capacity

Posted on September 21, 2023November 26, 2024 by Vinicius Grippa

With MySQL 8.0.30 comes a feature that is a game changer in ensuring optimal MySQL performance – the dynamic redo log sizing.

Overcoming Previous Limitations

Before version 8.0.30 came into play, redo log configuration was static, set once during database setup and rarely touched thereafter due to the MySQL restart required to effect any changes — a restart many chose to avoid to sidestep downtime. The launch of MySQL 8.0.30 changed the game, introducing the much-anticipated flexibility in redo log sizing, enabling alterations without needing a MySQL restart.

How It Works

Implementing resizing is relatively straightforward. All that is needed is to input the following MySQL command:

1
mysql> SET GLOBAL innodb_redo_log_capacity = 2*1024*1024*1024;

Estimating the Redo Log Capacity

The fresh batch of status variables introduced in MySQL 8.0.30 has made it possible to effectively estimate the redo log size, enhancing database performance tuning. Here’s how you can do it:

Start with executing the query:

MySQL
1
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_current_lsn'; SELECT SLEEP(60); SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_current_lsn';

Next, use the results derived from the initial query to run the following:

MySQL
1
2
3
4
5
6
7
mysql > SELECT ABS(20641693317 - 20903377487) / 1024 / 1024 AS MB_per_min;
+--------------+
| MB_per_min   |
+--------------+
| 249.56147194 |
+--------------+
1 row in set (0.00 sec)

In this instance, we observe a writing rate of approximately 250MB per minute in the redo log files. Therefore, a reasonable value for the redo log size would be the product of this rate and the number of minutes in an hour, yielding a size of 15GB. This approach aids in optimizing the redo log size to suit your database’s transaction rate, enhancing its performance.

Conclusion

MySQL 8.0.30 introduces a relevant feature by introducing dynamic redo log sizing, allowing hassle-free adjustments without system restarts. Alongside this, the update provides tools for accurate redo log capacity estimations, paving the way for optimized performance. It’s a step forward worth embracing for smoother MySQL operations.

Post navigation

← Rethinking the 80% InnoDB Buffer Pool Rule: Digging into Server RAM Allocation
The Ins and Outs of innodb_flush_log_at_trx_commit →
© 2025 Another Boring Tech Blog | Powered by Minimalist Blog WordPress Theme