mysql缓存(innodb_buffer_pool_size)在线调整细说


5.7以后innodb内存(innodb_buffer_pool_size)可以在线调整.这对于dba来说.挺不错的,但调整需要注意:
不是随意调小或者调大的,是遵循一定规则的.在此,5.7引入了innodb_buffer_pool_chunk_size参数,这个参数就是来控制内存大小规则的.
innodb_buffer_pool_chunk_size默认值为128m(134217728).这个值是以缓存池来计算的.所以在计算innodb_buffer_pool_size时,还要算上innodb_buffer_pool_instances
总结:innodb_buffer_pool_size的大小就是以innodb_buffer_pool_chunk_size*innodb_buffer_pool_instances 为最小基数.
以下就以innodb_buffer_pool_instances=8,innodb_buffer_pool_chunk_size=128M 来举例计算:

innodb_buffer_pool_size(min)=innodb_buffer_pool_chunk_size*innodb_buffer_pool_instances=1024M
这就意味着在初始化时,最小必须给1G的内存. 同时这个1G也是以后增减内存的最小基数.
如果在my.cnf里面配置不满1G,比如1000M,启动时会自动补齐1G.同理,如果不是1024的整数倍,将直接补满1024,而不是四舍五入,比如2000M,启动就是2048M,2100m就是3072M.
在线增减内存,也是以这个1G为基数,不满1G,自动补满1G.跟初始化my.cnf同理,就不累述了...

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20892230/viewspace-2127477/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20892230/viewspace-2127477/

你可能感兴趣的:(mysql缓存(innodb_buffer_pool_size)在线调整细说)