The master thread in InnoDB is a thread that performs various tasks in the background. Most of these tasks are I/O related, such as flushing dirty pages from the buffer cache or writing changes from the insert buffer to the appropriate secondary indexes. The master thread attempts to perform these tasks in a way that does not adversely affect the normal working of the server. It tries to estimate the free I/O bandwidth available and tune its activities to take advantage of this free capacity. Historically, InnoDB has used a hard coded value of 100 IOPs (input/output operations per second) as the total I/O capacity of the server.
Beginning with InnoDB 1.0.4, a new configuration parameter
indicates the overall I/O capacity available to InnoDB. The new
parameter
innodb_io_capacity
should
be set to approximately the number of I/O operations that the
system can perform per second. The value depends on your system
configuration. When
innodb_io_capacity
is set,
the master threads estimates the I/O bandwidth available for
background tasks based on the set value. Setting the value to
100
reverts to the old behavior.
You can set the value of
innodb_io_capacity
to any
number 100 or greater, and the default value is
200
. You can set the value of this parameter in
the MySQL option file (my.cnf
or
my.ini
) or change it dynamically with the
SET GLOBAL
command, which requires the
SUPER
privilege.
For more information about InnoDB I/O performance, see
Section 7.5.7, “Optimizing InnoDB
Disk I/O”.