如果你的数据库运行缓慢,或者出于某种原因无法响应查询,技术栈中每个依
赖数据库的组件都会遭受性能问题。为了保证数据库的平稳运行,你可以主动
监控以下这个与性能及资源利用率相关的指标:缓冲池使用情况。
缓冲池使用情况
MySQL
默认的存储引擎
InnoDB
使用了一片称为缓冲池的内存区域,用于缓
存数据表与索引的数据。缓冲池指标属于资源指标,而非工作指标。
默认设置下,缓冲池的大小通常相对较小,为
128MiB
。不过,
MySQL
建议
可将其扩大至专用数据库服务器物理内存的
80%
大小。然而,
MySQL
也指出
了一些注意事项:
InnoDB
的内存开销可能提高超过缓冲池大小
10%
的内存
占用。并且,如果你耗尽了物理内存,系统会求助于分页,导致数据库性能严
重受损。
缓冲池大小调整操作是分块进行的,缓冲池的大小必须为块的大小乘以实例的
数目再乘以某个倍数。
1.
innodb_buffer_pool_size = N * innodb_buffer_pool_chunk_size * innodb_buffer_p
ool_instances
块的默认大小为
128 MiB
,但是从
MySQL 5.7.5
开始可以自行配置。以上两
个参数的值都可以通过如下方式进行检查:
1.
SHOW GLOBAL VARIABLES LIKE "innodb_buffer_pool_chunk_size";
2.
SHOW GLOBAL VARIABLES LIKE "innodb_buffer_pool_instances";
评论