2016-11-15 3 views
0

У меня есть сервер MYSQL объемом 32 ГБ. Он по-прежнему абсолютно новый и не содержит базы данных, кроме стандартных. Однако, когда я бег free -m команду, я получаю следующее:Потребление RAM по умолчанию MYSQL

 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%, что является рекомендуемым значением. Может ли кто-нибудь объяснить это потребление памяти?

ответ

3

Эти значения я думаю, представляют собой максимальную величину потребления, которые могут быть выделены не то, что потребляемый по умолчанию

Весь InnoDB буферного пула выделяется при запуске сервера, таким образом уменьшая размер innodb_buffer_pool_size уменьшит первоначальный память, используемая MySQL.

Я считаю, что то же самое верно и для других буферов MySQL, таких как key_buffer_size и myisam_sort_buffer_size.

Однако при настройке этих параметров следует учитывать фактическую нагрузку на сервер. Объем памяти, используемый при запуске, не имеет значения; интересно, как выглядит использование памяти, когда сервер используется с реальными базами данных.

Поскольку вы упомянули (в другом месте), что используете Jelastic, вы должны удалить строку #Jelastic autoconfiguration mark. из своего my.cnf (обычно в/рядом с линией 1), если вы хотите вручную настроить эти параметры; в противном случае они автоматически масштабируются в соответствии с вашим лимитом масштабирования облачного тарифа (т. е. ваши изменения будут перезаписаны каждый раз, когда вы настраиваете лимиты облачных лимитов или перезапускаете MySQL).

0

key_buffer_size

Максимальный размер переменной в key_buffer_size составляет 4 Гбайт на 32-битных машин, и больше для 64-битных машин. MySQL рекомендует сохранить значение key_buffer_size меньше или равное 25% ОЗУ на вашем компьютере.

innodb_buffer_pool_size

Рекомендуемый диапазон: 60 ~ 80%

MySQL 5.7 and it’s online buffer pool resize feature должен сделать это проще принцип следовать.