Збільшити розмір пулу 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 / тощо, який, на мою думку, буде працювати.
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 on / var / lib, але коли я намагаюся ввімкнути його, я отримую "дозвіл відмовлено". Якщо я спробую записати компакт-диск як sudo, він говорить "Немає такого файлу чи каталогу". Думки? Це 64-бітна установка Ubuntu Server.
tgrosinger

Ви повинні розмістити свій my.cnf (/etc/my.cnf або на debian, ймовірно, /etc/mysql/my.cnf)
thinice

Крім того - ви захочете підтвердити з MySQL про розмір буферного пулу - 16 Мб звучить трохи, враховуючи, що за замовчуванням це 128 Мб . Ви можете підтвердити це, ввівши "SHOW VARIABLES LIKE" innodb_buffer_pool_size "в сеанс MySQL для цього сервера. Результат у байтах.
thinice

1
sudo cdне буде працювати, тому що sudo створює підзарядку з правильними привілеями і закриває її, коли закінчиться, залишаючи вас там, де ви почали. Спробуйте sudo -sзамість цього.
Ladadadada

Отже, коли я використовую ПОКАЗУВАННЯ ВАРІАБЛІЙ, як це ... він говорить про розмір буферного пулу 16777216, що, на мою думку, насправді 16М. Ось my.cnf: hastebin.com/binaqeforu.vala Дуже дякую!
tgrosinger

2

У моєму випадку проблема була innodb_buffer_pool_instances.

З моменту зменшення innodb_buffer_pool_sizeя став меншим, ніж один Гбіт на екземпляр, тому в кінцевому підсумку його округлили.

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


0

Можливо, ви запускаєте mysql з --no-defaults або (-no-defaults), через що він взагалі не завантажує конфігурацію. Є також --defaults-файл (або -default-файл, не впевнений), що призводить до завантаження конкретного конфігурації. Також перевірте, чи це конфігурація, що не відрізняється від тієї, яку ви редагуєте.

Ви можете спробувати почати з:

--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 / default, де встановлюються параметри. Використовуючи щось по лінії 'ps -ef | grep mysql 'Ви можете побачити, з якими параметрами він працює зараз.
Юві
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.