MYSQL默认RAM消耗

时间:2016-11-15 17:13:33

标签: mysql database memory memory-management ram

我有一个32GB的RAM MYSQL服务器。它仍然是全新的,除了默认数据库之外没有附加数据库。但是,当我运行free -m命令时,我得到以下内容:

       total     used     free    shared  buff/cache available
Mem:   32768     2972     29718     10       76        29692
Swap:  16384     0        16384

当我联系主持人时,他们告诉我MYSQL默认消耗10%的主内存,他们建议我配置以下参数:

key_buffer_size = 8192M
myisam_sort_buffer_size = 10922M
innodb_buffer_pool_size = 16384M

我认为这些值代表了可以分配的最大消耗量,而不是默认消耗的值,它们是MYSQL的推荐值。例如,8192M / 32768M(总内存)= 25%,这是建议值。任何人都可以解释这种内存消耗吗?

2 个答案:

答案 0 :(得分:3)

  

我认为这些值代表的是可以分配的最大消耗,而不是默认消耗的

整个InnoDB缓冲池在服务器启动时分配,因此减小innodb_buffer_pool_size的大小将减少MySQL使用的初始内存占用量。

我相信其他MySQL缓冲区也是如此,例如key_buffer_sizemyisam_sort_buffer_size

但是,在调整这些参数时应考虑实际的服务器工作负载。启动时使用的内存量无关紧要;有趣的是当服务器与真实数据库一起使用时内存使用情况如何。

由于您(其他地方)提及您正在使用Jelastic,因此如果您想手动调整这些内容,则应从#Jelastic autoconfiguration mark.(通常在第1行/附近)删除my.cnf行设置;否则它们会自动缩放以适应您的cloudlet扩展限制(即每次调整cloudlet限制或重新启动MySQL时,您的更改都将被覆盖)。

答案 1 :(得分:0)

<强>的key_buffer_size

32位计算机上 key_buffer_size 变量的最大大小为4 GB,64位计算机的最大大小为4 GB。 MySQL建议您保持key_buffer_size小于或等于机器RAM的25%。

<强> innodb_buffer_pool_size

推荐范围:60~80%

MySQL 5.7 and it’s online buffer pool resize feature应该让这更容易遵循原则。