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 buffer pool size in the multi-gigabyte range. Multiple buffer pool instances are configured using theinnodb_buffer_pool_instances configuration option, and you might also adjust the innodb_buffer_pool_size value.
对于具有数GB范围的缓冲池的系统,将缓冲池划分为单独的实例可以通过减少不同线程读取和写入缓存页面时的争用来提高并发性。此功能通常用于缓冲池大小在数GB范围内的系统。使用innodb_buffer_pool_instances配置选项配置多个缓冲池实例,并且您还可以调整innodb_buffer_pool_size值。
When the InnoDB 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, and is protected by its own buffer pool mutex.
当InnoDB缓冲池很大时,通过从内存中检索可以满足许多数据请求,您可能会遇到来自多个试图同时访问缓冲池的线程的瓶颈。您可以启用多个缓冲池来最小化此争用。存储在缓冲池中或从缓冲池读取的每个页面都使用散列函数随机分配给其中一个缓冲池。 每个缓冲池管理自己的空闲列表,刷新列表,LRUs以及连接到缓冲池的所有其他数据结构,并受其自己的缓冲池互斥锁保护。
To enable multiple buffer pool instances, set the innodb_buffer_pool_instances configuration option to a value greater than 1 (the default) up to 64 (the maximum). This option takes effect only when you set innodb_buffer_pool_size 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 innodb_buffer_pool_instances and innodb_buffer_pool_size so that each buffer pool instance is at least 1GB.
要启用多个缓冲池实例,请将innodb_buffer_pool_instances配置选项设置为大于1(默认值)最大为64(最大值),只有当您将innodb_buffer_pool_size设置为1GB或更大的大小时,此选项才会生效,您指定的总大小被分配到所有缓冲池中。 为了获得最佳效率,请指定innodb_buffer_pool_instances和innodb_buffer_pool_size的组合,以便每个缓冲池实例至少为1GB。
For information about modifying InnoDB buffer pool size, see Section 14.6.3.2, “Configuring InnoDB Buffer Pool Size”.
有关修改InnoDB缓冲池大小的信息,请参见Section 14.6.3.2, “Configuring InnoDB Buffer Pool Size”.
PREV: 14.6.3.2 Configuring InnoDB Buffer Pool Size https://blog.51cto.com/itzhoujun/2355874
NEXT: 14.6.3.4 Making the Buffer Pool Scan Resistant https://blog.51cto.com/itzhoujun/2355879