Увеличить размер пула буферов InnoDB


11

У меня возникают трудности при настройке размера пула буферов и размера файла журнала для MySql InnoDB. Я далек от эксперта MySql, но читал вокруг, и кажется, что, чтобы изменить это, я просто добавляю эти строки в мой /etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

Сервер имеет около 7 ГБ памяти и также работает веб-сервер, поэтому я думаю, что эти цифры должны быть хорошей отправной точкой. Однако после сохранения и перезапуска сервера изменения не вступили в силу. Я попытался запустить Mysqltuner, который сообщил, что буферный пул все еще в 16.0M. Есть идеи, что я делаю не так? Дайте мне знать, если вы хотите увидеть больше файла конфигурации. Спасибо!


какое распределение? Вы используете пакеты дистрибутива или что-то еще? Как вы начинаете MySQL? Короче говоря, что вы установили, на что и как вы его установили?
Навахо

Это стек ламп по умолчанию на сервере Ubuntu x64
tgrosinger

Был другой конфигурационный файл, расположенный в / opt / lampp / etc, который, я считаю, будет работать.
tgrosinger

Ответы:


7

Убедитесь, что эти строки находятся внутри [mysqld]раздела, т.е. после, [mysqld]но перед любым другим, [section]например [mysqldump].


Они находятся в правильном разделе, в [mysqld] прямо перед [mysqldump]
tgrosinger

2

Проверьте информацию в своем журнале ошибок MySQL - скорее всего, в ней. /var/lib/mysqlКроме того, это 32-битная система с ядром bigmem? Если это так, вы не можете адресовать более 2 ГБ для MySQL.

Кроме того - вы хотите подтвердить от самого MySQL о размере пула буферов - 16 МБ звучит немного не так, учитывая, что по умолчанию установлено 128 МБ. Вы можете подтвердить это, введя 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'в сеанс MySQL для этого сервера. Результат в байтах.


Почему-то я не могу попасть в этот каталог. Я вижу это, когда я делаю ls в / var / lib, но когда я пытаюсь войти в него, я получаю «Отказано в доступе». Если я пытаюсь перейти в качестве sudo, он говорит: «Нет такого файла или каталога». Мысли? Это 64-битная установка Ubuntu Server.
tgrosinger

Вы должны опубликовать свой my.cnf (/etc/my.cnf или в Debian, вероятно, /etc/mysql/my.cnf)
thin

Кроме того - вы хотите подтвердить от самого MySQL о размере пула буферов - 16 МБ звучит немного не так, учитывая, что по умолчанию установлено 128 МБ. Вы можете подтвердить это, введя 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'в сеанс MySQL для этого сервера. Результат в байтах.
худой

1
sudo cdне будет работать, потому что sudo создает подоболочку с нужными привилегиями и закрывает ее после завершения, оставляя вас там, где вы начали. Попробуй sudo -sвместо этого.
Ладададада

Поэтому, когда я использую SHOW VARIABLES LIKE ... он говорит, что размер пула буферов равен 16777216, и я считаю, что на самом деле это 16M. Вот мой my.cnf: hastebin.com/binaqeforu.vala Большое спасибо!
tgrosinger

2

В моем случае проблема была innodb_buffer_pool_instances.

Так как я уменьшал innodb_buffer_pool_size, это стало меньше чем 1 ГБ за экземпляр, таким образом, это закончило округлять это.

Когда я также уменьшил количество экземпляров , это, наконец, изменило размер пула !


0

Возможно, вы запускаете mysql с --no-defaults или (-no-defaults), что приводит к тому, что он вообще не загружает конфигурацию. Также есть --defaults-file (или -default-file, не уверен), который заставляет его загружать конкретную конфигурацию. Также проверьте, не относится ли это к конфигурации, отличной от той, которую вы редактируете.

Вы можете попробовать начать с:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

Или проверьте параметры, с которых вы уже начинаете, и посмотрите, не заставит ли один из них пропустить конфигурацию.


Как я могу увидеть, как он запускается в Ubuntu? Я привык к тому, что я бы просто добавил его в файл rc.d, но здесь я не вижу ничего подобного.
tgrosinger

Arch использует BSD Style Init, тогда как Ubuntu использует SysV Init. Таким образом, в /etc/init.d есть файл для его запуска и, возможно, файл в / etc / defaults, где устанавливаются параметры. Используя что-то вроде 'ps -ef | grep mysql 'вы можете увидеть, с какими параметрами он работает в данный момент.
Juwi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.