innodb_buffer_pool_instances
INFO
1 automated check cover this variable.
Overview
- Purpose
- Documented in the MySQL 8.4 manual as a server system variable (scope: Global). Purpose and semantics are described at the linked manual page.
- Dynamic (MySQL 8.4 reference)
- MySQL 8.4 marks this variable as not dynamic (
Dynamic= No). It must be set inmy.cnfor on the command line; changing it requires a restart. - Default value
- 8 (or 1 if buffer pool < 1 GB) (MySQL 8.4)
- Version and product notes
- MariaDB and Percona Server may use different names, defaults, or dynamic behavior; verify their documentation.
- Documentation
- https://dev.mysql.com/doc/refman/8.4/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances
- Other vendors
What is checked
Rules that reference this variable, with their severity and what each rule detects:
- INFO Set innodb_buffer_pool_instances to approximately 1 per GB of buffer pool (max 64). Still supported in MySQL 8.4, where the default is computed from buffer pool size and CPU count rather than fixed at 8 — an explicitly set low value is still worth reviewing.
Tuning guidance
- Recommended actions:
- Set innodb_buffer_pool_instances to approximately 1 per GB of buffer pool (max 64). Still supported in MySQL 8.4, where the default is computed from buffer pool size and CPU count rather than fixed at 8 — an explicitly set low value is still worth reviewing.
- Trade-offs: Larger buffer pools improve hit ratio but consume more RAM and increase restart warm-up time. Over-allocating risks OOM or swap. Under-allocating means more disk I/O.
Example
-- In my.cnf (requires restart, pre-8.4):
innodb_buffer_pool_instances = 8
Always validate on a non-production instance first. Use SET PERSIST (MySQL 8.0+) for changes that should survive restarts.