innodb_buffer_pool_instances
INFO
Rule IDs: bp_004
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
bp_004: Set innodb_buffer_pool_instances to approximately 1 per GB of buffer pool (max 64). Removed in MySQL 8.4 (auto-managed).
Tuning guidance
- Recommended actions:
- Set innodb_buffer_pool_instances to approximately 1 per GB of buffer pool (max 64). Removed in MySQL 8.4 (auto-managed).
- 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.