首页 > 解决方案 > 谷歌云sql不正确innodb_buffer_pool_size?

问题描述

上周,我将 Cloud SQL 机器从 'db-f1-micro' 0.6GB RAM 机器升级到了 'db-n1-standard-1' 3.75GB RAM 机器。跑步:

SELECT @@innodb_buffer_pool_size;

输出是:

1375731712

我相信是1.38GB。这是主要和副本的内存利用率:

内存使用

对于这种机器类型,这似乎低得奇怪,但正在研究(如何在谷歌云 sql 中的 mysql 中设置 innodb_buffer_pool_size?)看来我无法更改 innodb_buffer_pool_size。这是否以某种方式动态设置并随着时间缓慢增加?似乎并不接近谷歌似乎针对这些目标的 75-80% 范围。

标签: google-cloud-sql

解决方案


innodb_buffer_pool_chunk_size和的值是innodb_buffer_pool_instances多少?

innodb_buffer_pool_size必须始终等于或为这两个值的乘积的倍数,并且会自动调整为这样。块大小只能在启动时修改,如InnoDB 缓冲池大小配置的文档页面中所述。

特别是对于 Google CloudSQL,不仅是绝对的,而且相对大小也innodb_buffer_pool_size取决于实例类型。我为 GCP 支持工作,在对我们的文档进行一些研究之后,我可以看出池大小是根据内部公式自动配置的,该公式可能会发生变化。正在进行改进以使实例对 OOM 更具弹性,缓冲池大小在这方面起着重要作用。

因此,对于您的新实例类型,可能会出现不同的预期行为,并且innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances可能会获得完全改变的内存使用情况。目前,用户无法控制innodb_buffer_pool_size.


推荐阅读