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!


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].


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.


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 !


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.