InnoDB uses background threads to service various types
of I/O requests. Starting from InnoDB Plugin 1.0.4, the number of
background threads tasked with servicing read and write I/O
on data pages is configurable. In previous versions
of InnoDB, there was only one thread each for read and
write on non-Windows platforms. On Windows, the number of background
threads was controlled by innodb_file_io_threads
. The
configuration parameter innodb_file_io_threads
has been
removed in InnoDB Plugin 1.0.4. If you try to set a value
for this parameter, a warning will be written to the log file and
the value will be ignored.
In place of innodb_file_io_threads
, two new configuration
parameters are introduced in the InnoDB Plugin 1.0.4, which are
effective on all supported platforms. The two parameters
innodb_read_io_threads
and innodb_write_io_threads
signify
the number of background threads used for read and write
requests respectively. You can set the value of these parameters in
the MySQL option file (my.cnf
or
my.ini
). These parameters cannot be changed
dynamically. The default value for these parameters is
4
and the permissible values range from
1-64
.
The purpose of this change is to make InnoDB more scalable
on high end systems. Each background thread can handle up to 256
pending I/O requests. A major source of background I/O is the read
ahead requests. InnoDB tries to balance the load of incoming
requests in such way that most of the background threads share work
equally. InnoDB also attempts to allocate read requests from the
same extent to the same thread to increase the chances of coalescing
the requests together. If you have a high end I/O subsystem and you
see more than 64 times innodb_read_io_threads
pending read requests in SHOW ENGINE INNODB STATUS
,
then you may gain by increasing the value of
innodb_read_io_threads
.
This is the User’s Guide for InnoDB Plugin 1.0.6 for MySQL 5.1, generated on March 4, 2010 (rev 673:680M).