发布于 2019-06-03 12:32:48
innodb_buffer_pool_size不在那里是件好事。
即使你能操纵它的价值,极光的最佳实践说你应该远离它。请注意最佳做法文件在副标题Default parameter values and their importance下说了什么:
某些DB实例参数包含变量或公式,其中的值由常量决定。实例包括实例的大小和内存占用、实例的网络端口及其分配的存储。最好保持这些操作不变,因为每当执行实例向上或向下操作时,它们都会自动调整。例如,Aurora参数innodb_buffer_pool_size默认为:{ DBInstanceClassMemory *3/4} DBInstanceClassMemory是一个在GiB中设置为实例内存大小的变量。示例:对于内存为30.5 GiB的db.r4.xlarge实例,此值为20,090,716,160字节或18.71 GiB。假设我们决定将这个参数设置为一个固定的值,比如18,000,000,000字节,然后我们运行一个压缩操作到db.r4.large,它有一半的内存(15.2 GiB)。在这种情况下,在修改数据库引擎后,我们可能会在数据库引擎上遇到内存不足的情况,并且实例无法正常启动。
因为MySQL5.7允许拥有超级特权的用户动态调整缓冲池的大小,没有必要将其设置为固定值。让亚马逊来处理吧。这为Aurora提供了与RDS相比的优势,该缓冲池具有内存的供应和需求。
我知道这个问题的标签是mysql-5.6。这意味着不能动态地调整InnoDB缓冲池的大小(需要重新启动实例才能生效)。我为MySQL 5.7提到的原则仍然适用,因此更改诺姆b_缓冲器_池子_大小相当于更改实例类。内存需求仍将得到满足,而不会危及OOM条件下的实例。
发布于 2018-07-22 04:28:57
尝试:
SHOW GLOBAL VARIABLES like 'INNODB_BUFFER%';另一种方法是选择变量:
select @@INNODB_BUFFER_POOL_SIZE;https://dba.stackexchange.com/questions/212881
复制相似问题