Zwiększ wielkość puli buforów InnoDB

11

Mam problem z ustawieniem wielkości puli buforów i rozmiaru pliku dziennika dla MySql InnoDB. Jestem daleki od eksperta od MySql, ale czytam i wydaje się, że aby to zmienić, po prostu dodaję te wiersze do mojego /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

Serwer ma około 7 GB pamięci i działa również na serwerze WWW, więc myślę, że te liczby powinny być dobrym punktem wyjścia. Po zapisaniu i zrestartowaniu serwera nie wydaje się jednak, aby zmiany weszły w życie. Próbowałem uruchomić Mysqltuner, który zgłosił, że pula buforów wciąż wynosi 16,0 mln. Masz pojęcie, co robię źle? Daj mi znać, jeśli chcesz zobaczyć więcej pliku konfiguracyjnego. Dzięki!

tgrosinger
źródło
jaka dystrybucja korzystasz z pakietów distro czy coś innego? Jak zaczynasz MySQL? Krótko mówiąc, co zainstalowałeś, na czym zainstalowałeś i jak to zainstalowałeś?
navaho
Jest to domyślny stos lamp na serwerze Ubuntu x64
tgrosinger
W katalogu / opt / lampp / etc znajdował się inny plik konfiguracyjny, który - jak sądzę - zadziała.
tgrosinger

Odpowiedzi:

7

Upewnij się, że te wiersze znajdują się w [mysqld]sekcji, tj. Po, [mysqld]ale przed innymi, [section]takimi jak [mysqldump].

Xofer
źródło
Znajdują się we właściwej sekcji, w [mysqld] tuż przed [mysqldump]
tgrosinger
2

Sprawdź swój dziennik błędów MySQL w poszukiwaniu informacji - najprawdopodobniej w nim zlokalizowanych /var/lib/mysql- czy to także 32-bitowy system z jądrem bigmem? Jeśli tak, nie możesz adresować więcej niż 2 GB dla MySQL.

Ponadto - będziesz chciał potwierdzić z samej MySQL o wielkości puli buforów - 16 MB wydaje się nieco wyłączone, biorąc pod uwagę, że domyślnie jest to 128 MB. Możesz to potwierdzić, wpisując „SHOW VARIABLES LIKE” innodb_buffer_pool_size ”w sesji MySQL dla tego serwera. Wynik jest w bajtach.

cienki lód
źródło
Z jakiegoś powodu nie mogę dostać się do tego katalogu. Widzę to, kiedy robię ls na / var / lib, ale kiedy próbuję w niego cd, dostaję „odmowę dostępu”. Jeśli spróbuję wykonać cd w sudo, pojawi się komunikat „Brak takiego pliku lub katalogu”. Myśli? Jest to 64-bitowa instalacja Ubuntu Server.
tgrosinger
Powinieneś opublikować swoje my.cnf (/etc/my.cnf lub na Debianie prawdopodobnie /etc/mysql/my.cnf)
cienkie
Ponadto - będziesz chciał potwierdzić z samej MySQL o wielkości puli buforów - 16 MB wydaje się nieco wyłączone, biorąc pod uwagę, że domyślnie jest to 128 MB. Możesz to potwierdzić, wpisując „SHOW VARIABLES LIKE” innodb_buffer_pool_size ”w sesji MySQL dla tego serwera. Wynik jest w bajtach.
cienki
1
sudo cdnie będzie działać, ponieważ sudo tworzy podpowłokę z odpowiednimi uprawnieniami i zamyka ją po zakończeniu, pozostawiając cię tam, gdzie zacząłeś. Spróbuj sudo -szamiast tego.
Ladadadada,
Więc kiedy używam SHOW VARIABLES LIKE ... to mówi, że wielkość puli buforów wynosi 16777216, co moim zdaniem jest w rzeczywistości 16M. Oto my.cnf: hastebin.com/binaqeforu.vala Dziękuję bardzo!
tgrosinger
2

W moim przypadku problem był innodb_buffer_pool_instances.

Od kiedy zmniejszałem innodb_buffer_pool_size, stał się mniej niż 1 GB na instancję, więc ostatecznie go zaokrągliłem.

Kiedy zmniejszyłem również liczbę instancji , w końcu zmieniłem rozmiar puli !

carla
źródło
0

Możliwe, że uruchomisz mysql z opcją --no-defaults lub (-no-defaults), co spowoduje, że w ogóle nie załaduje konfiguracji. Jest też --defaults-file (lub -default-file, nie jestem pewien), co powoduje, że ładuje określoną konfigurację. Sprawdź także, czy jest to inna konfiguracja niż ta, którą edytujesz.

Możesz spróbować zacząć od:

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

Lub sprawdź parametry, od których już zaczynasz i sprawdź, czy któryś z nich powoduje pominięcie konfiguracji.

juwi
źródło
Jak mogę zobaczyć, jak to się uruchamia w Ubuntu? Jestem przyzwyczajony do wyskakiwania, gdybym po prostu dodał go do pliku rc.d, ale nie widzę tu czegoś takiego.
tgrosinger
Arch używa stylu inicjującego BSD, podczas gdy Ubuntu używa SysV Init. Jest więc plik w /etc/init.d, aby go uruchomić i prawdopodobnie plik w / etc / defaults, w którym ustawia się opcje. Używając czegoś w stylu „ps -ef | grep mysql 'możesz zobaczyć z jakimi opcjami obecnie działa.
juwi