MYSQL默认的RAM消耗
我有一个32GB RAM的MYSQL服务器。它仍然是全新的,除了默认的数据库外没有附加数据库。然而,当我运行free -m
命令,我得到如下:MYSQL默认的RAM消耗
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%,这是推荐值。任何人都可以解释这种内存消耗?
我认为这些价值观代表什么默认
整个InnoDB缓冲池在服务器启动时分配的消耗可能被未分配的最大的消耗,所以降低innodb_buffer_pool_size
规模将减少初始内存足迹由MySQL使用。
我相信其他MySQL缓冲区也是如此,例如key_buffer_size
和myisam_sort_buffer_size
。
但是,在调整这些参数时应考虑实际的服务器工作负载。启动时使用的内存量不相关;有趣的是当服务器与真实数据库一起使用时,内存使用情况如何。
由于您在其他地方提及您使用的是Jelastic,如果您想手动调整这些设置,则应该从my.cnf
(通常位于/靠近第1行)删除#Jelastic autoconfiguration mark.
行;否则会自动缩放以适应您的云端缩放限制(即,每次调整云端限制或重新启动MySQL时,您的更改都会被覆盖)。
的key_buffer_size
的的key_buffer_size变量的最大大小为4 GB在32台机器上,以及较大的64台机器。 MySQL建议您保持key_buffer_size小于或等于机器上RAM的25%。
innodb_buffer_pool_size
推荐范围:60〜80%
MySQL 5.7 and it’s online buffer pool resize feature应该使这是一个更容易遵循的原则。