14.8.6 Настройка количества фоновых потоков ввода-вывода InnoDB
InnoDB использует фоновые потоки для обработки различных типов запросов ввода-вывода. Вы можете настроить количество фоновых потоков, обрабатывающих запросы чтения и записи на страницы данных, используя параметры конфигурации innodb_read_io_threads и innodb_write_io_threads. Эти параметры обозначают количество фоновых потоков, используемых для запросов чтения и записи соответственно. Они эффективны на всех поддерживаемых платформах. Вы можете установить значения этих параметров в файле опций MySQL (my.cnf или my.ini); изменить их динамически нельзя. Значение по умолчанию для этих параметров — 4, а допустимые значения находятся в диапазоне от 1-64.
Цель этих параметров конфигурации — сделать InnoDB более масштабируемым на высокопроизводительных системах. Каждый фоновый поток может обрабатывать до 256 ожидающих запросов ввода-вывода. Главным источником фонового ввода-вывода являются запросы. InnoDB пытается сбалансировать нагрузку входящих запросов таким образом, чтобы большинство фоновых потоков делили работу равномерно. InnoDB также пытается назначать запросы чтения из одного и того же диапазона одному и тому же потоку, чтобы увеличить вероятность объединения запросов. Если у вас высокопроизводительная подсистема ввода-вывода и вы видите более 64 × innodb_read_io_threads ожидающих запросов чтения в выводе SHOW ENGINE INNODB STATUS, вы можете улучшить производительность, увеличив значение innodb_read_io_threads.
В системах Linux InnoDB по умолчанию использует подсистему асинхронного ввода-вывода для выполнения предзагрузки и запросов записи для страниц файлов данных, что изменяет способ обработки InnoDB фоновыми потоками этих типов запросов ввода-вывода. Дополнительную информацию см. в Разделе 14.8.7 «Использование асинхронного ввода-вывода в Linux».
Дополнительную информацию о производительности ввода-вывода InnoDB см. в Разделе 8.5.8 «Оптимизация ввода-вывода InnoDB на диске».
© 2025 Oracle
Licensed under the GPLv2 License.