<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="innodb-multiple-buffer-pools">
      </a>
      17.8.3.2 Configuring Multiple Buffer Pool Instances
     </h4>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045163167328">
  </a>
  <a class="indexterm" name="idm46045163166256">
  </a>
  <a class="indexterm" name="idm46045163165184">
  </a>
  <p>
   For systems with buffer pools in the multi-gigabyte range,
        dividing the buffer pool into separate instances can improve
        concurrency, by reducing contention as different threads read
        and write to cached pages. This feature is typically intended
        for systems with a
   <a class="link" href="glossary.html#glos_buffer_pool" title="buffer pool">
    buffer
        pool
   </a>
   size in the multi-gigabyte range. Multiple buffer
        pool instances are configured using the
   <a class="link" href="innodb-parameters.html#sysvar_innodb_buffer_pool_instances">
    <code class="literal">
     innodb_buffer_pool_instances
    </code>
   </a>
   configuration option, and you might also adjust the
   <a class="link" href="innodb-parameters.html#sysvar_innodb_buffer_pool_size">
    <code class="literal">
     innodb_buffer_pool_size
    </code>
   </a>
   value.
  </p>
  <p>
   When the
   <code class="literal">
    InnoDB
   </code>
   buffer pool is large, many
        data requests can be satisfied by retrieving from memory. You
        might encounter bottlenecks from multiple threads trying to
        access the buffer pool at once. You can enable multiple buffer
        pools to minimize this contention. Each page that is stored in
        or read from the buffer pool is assigned to one of the buffer
        pools randomly, using a hashing function. Each buffer pool
        manages its own free lists, flush lists, LRUs, and all other
        data structures connected to a buffer pool.
  </p>
  <p>
   To enable multiple buffer pool instances, set the
   <code class="literal">
    innodb_buffer_pool_instances
   </code>
   configuration
        option to a value greater than 1 (the default) up to 64 (the
        maximum). This option takes effect only when you set
   <code class="literal">
    innodb_buffer_pool_size
   </code>
   to a size of 1GB or
        more. The total size you specify is divided among all the buffer
        pools. For best efficiency, specify a combination of
   <a class="link" href="innodb-parameters.html#sysvar_innodb_buffer_pool_instances">
    <code class="literal">
     innodb_buffer_pool_instances
    </code>
   </a>
   and
   <a class="link" href="innodb-parameters.html#sysvar_innodb_buffer_pool_size">
    <code class="literal">
     innodb_buffer_pool_size
    </code>
   </a>
   so
        that each buffer pool instance is at least 1GB.
  </p>
  <p>
   For information about modifying
   <code class="literal">
    InnoDB
   </code>
   buffer
        pool size, see
   <a class="xref" href="innodb-buffer-pool-resize.html" title="17.8.3.1 Configuring InnoDB Buffer Pool Size">
    Section 17.8.3.1, “Configuring InnoDB Buffer Pool Size”
   </a>
   .
  </p>
 </div>
 <br/>
</div>
