我上周将Cloud SQL机器从“ db-f1-micro” 0.6GB RAM机器升级到了“ db-n1-standard-1” 3.75GB RAM机器。正在运行:
SELECT @@innodb_buffer_pool_size;
输出为:
1375731712
我相信是1.38GB。这是主数据库和副本数据库的内存利用率:
对于这种机器类型,这似乎很低,但是研究(How to set innodb_buffer_pool_size in mysql in google cloud sql?)似乎没有,我可以更改innodb_buffer_pool_size。是否以某种方式动态设置并随着时间的推移逐渐增加?似乎没有达到谷歌针对这些目标的75-80%的范围。
答案 0 :(得分:0)
innodb_buffer_pool_chunk_size
和innodb_buffer_pool_instances
的值是多少?
innodb_buffer_pool_size
必须始终等于或等于这两个值的乘积,并且将自动调整为。块大小只能在启动时进行修改,如the docs page for InnoDB Buffer Pool Size configuration中所述。
特别是对于Google CloudSQL,innodb_buffer_pool_size
的绝对大小和相对大小不仅取决于实例类型。我为GCP支持工作,在对我们的文档进行了一些研究之后,我可以得知池大小是根据内部公式自动配置的,该公式可能会发生变化。正在进行改进,以使实例对OOM更具弹性,而缓冲池的大小在其中起着重要的作用。
因此,可以预期的行为是,使用新的实例类型以及可能不同的innodb_buffer_pool_chunk_size
和innodb_buffer_pool_instances
,您的内存使用可能会发生很大变化。当前,用户无法控制innodb_buffer_pool_size
。