InnoDB uses background threads
to service various types of I/O requests. You can configure the
number of background threads that service read and write I/O on
data pages, using the configuration parameters
innodb_read_io_threads and
innodb_write_io_threads. These
parameters signify the number of background threads used for read
and write requests respectively. They are effective on all
supported platforms. You can set the value of these parameters in
the MySQL option file (my.cnf or
my.ini); you cannot change them 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 ×
innodb_read_io_threads pending
read requests in SHOW ENGINE INNODB STATUS, you
might gain by increasing the value of
innodb_read_io_threads.
For more information about InnoDB I/O performance, see Section 8.5.8, “Optimizing InnoDB Disk I/O”.