При настройке innodb_buffer_pool_size значение должно быть другим, если у вас много маленьких сайтов и одного? - PullRequest
0 голосов
/ 09 апреля 2020

Общее правило, которое я наблюдал, заключается в настройке этого свойства для использования 70% доступной оперативной памяти для выделенных SQL серверов с объемом оперативной памяти более 4 ГБ. Однако я работаю над тем, что в основном составляет среду общего хостинга, в которой в последнее время наблюдается тонна трафика c, и я хочу оптимизировать это - это выделенные mySQL серверы, но базы данных для 200-1000 различных сайтов. Должен ли я по-прежнему настраивать это правило?

1 Ответ

0 голосов
/ 09 апреля 2020

В вашем экземпляре MySQL может быть много таблиц и схем, но для всех них используется один пул буферов. Не имеет значения, для чего они используются - один веб-сайт или несколько веб-сайтов или какая-то база данных, которая вообще не предназначена для веб-сайта. В основном все, что хранится на странице табличного пространства InnoDB в этом экземпляре MySQL, должно быть загружено в буферный пул, прежде чем его можно будет прочитать или обновить.

Рекомендация 70% доступной ОЗУ не является волхвов c число.

Например, предполагается, что у вас в хранилище гораздо больше данных, чем может поместиться в ОЗУ. Если бы у вас было 100 ГБ ОЗУ и 2 ГБ данных в хранилище, было бы излишним излишним создание пула буферов в 70 ГБ. Страницы из хранилища будут скопированы в буферный пул только один раз, поэтому для 2 ГБ данных буферный пул объемом 70 ГБ будет в основном пустым.

Также предполагается, что оставшихся 30% ОЗУ достаточно для поддержки вашего операционная система и другие процессы, кроме MySQL.

70% - это только начальное предложение. Вы должны понимать, что ваша память должна правильно ее измерять.

...