Showing entries 1 to 3
Displaying posts with tag: O_DIRECT (reset)
Discussing the innodb_log_block_size variable

Not a ground-breaking post here, but if you are interested in knowing more about the innodb_log_block_size variable, or if you use SSD cards and/or large InnoDB log files on ext4, then this is for you.

I’d read about it before briefly before, but didn’t give it too much thought until I ran across the following entry in an error log the other day:

InnoDB: Warning: innodb_log_block_size has been changed
from default value 512. (###EXPERIMENTAL### operation)

This got me wanting to know more.

Basically, this variable changes the size of transaction log records. Generally, the default of 512 is a good value. However, it has been found that setting it to 4096 has been beneficial when using SSD cards. (Note that while it is possible to set this to a value other than 512 or 4096, those are currently the only 2 values that make sense to use.)

Also, it has been found that 4096 is the best setting if you run …

[Read more]
MySQL variable innodb_flush_method – summarized

innodb_flush_method variable specifies how InnoDB opens and flushes log and data files. In Innodb optimization, setting the variable innodb_flush_method tweaks the performance most of the times but there are cases of otherwise though. If innodb_flush_method is set to O_DIRECT it’d avoid double buffering and reduce swap pressure and helps improving performance. innodb_flush_method has been covered […]

Using O_DIRECT for the InnoDB transaction log

We want to use large transaction log files for InnoDB to reduce page writes done for fuzzy checkpoints. The sum of the sizes for log files is 4G in official MySQL and much larger in Percona XtraDB. I previously published results to show the benefit from using larger log files. Until recently we were concerned about that impact of log files on crash recovery time. Crash recovery is much faster now. We are also concerned about the impact on the buffer pool. We run with innodb_flush_method=O_DIRECT. When this is set log files use buffered IO and can use space in the OS buffer cache. We prefer not to dedicate 4G or more of RAM for caching log files.


The alternative on Linux is to use O_DIRECT for log files. I don't think O_SYNC would be a good choice …

[Read more]
Showing entries 1 to 3