14.8.3.2 Настройка нескольких экземпляров буферного пула
Для систем с буферными пулами объёмом в несколько гигабайт разделение буферного пула на отдельные экземпляры может улучшить конкурентность, уменьшив конкуренцию, когда разные потоки читают и записывают в кэшированные страницы. Эта функция обычно предназначена для систем размером в несколько гигабайт. Несколько экземпляров буферного пула настраиваются с помощью параметра конфигурации innodb_buffer_pool_instances, и вы также можете скорректировать значение innodb_buffer_pool_size.
Когда буферный пул InnoDB имеет большой размер, многие запросы данных могут быть удовлетворены за счёт извлечения из памяти. Вы можете столкнуться с узкими местами из-за множественных потоков, пытающихся одновременно получить доступ к буферному пулу. Вы можете включить несколько буферных пулов, чтобы свести к минимуму эту конкуренцию. Каждая страница, которая хранится в или считывается из буферного пула, случайным образом назначается одному из буферных пулов с использованием хеш-функции. Каждый буферный пул управляет собственными списками свободных, списками сброса, LRUs и всеми другими структурами данных, связанными с буферным пулом, и защищён собственной блокировкой буферного пула.
Для включения нескольких экземпляров буферного пула установите параметр конфигурации innodb_buffer_pool_instances на значение больше 1 (по умолчанию) до 64 (максимально). Этот параметр вступает в силу только при установке параметра innodb_buffer_pool_size на размер 1 ГБ или более. Указанный вами общий размер делится между всеми буферными пулами. Для наилучшей эффективности укажите сочетание innodb_buffer_pool_instances и innodb_buffer_pool_size, чтобы каждый экземпляр буферного пула составлял не менее 1 ГБ.
Дополнительную информацию о изменении размера буферного пула InnoDB см. в разделе 14.8.3.1, «Настройка размера буферного пула InnoDB».
© 2025 Oracle
Licensed under the GPLv2 License.