Erhöhen Sie die Größe des InnoDB-Pufferpools


11

Ich habe Probleme beim Festlegen der Größe des Pufferpools und der Protokolldatei für MySql InnoDB. Ich bin weit entfernt von einem MySQL-Experten, habe aber herumgelesen und es scheint, dass ich, um dies zu ändern, diese Zeilen einfach zu meiner /etc/mysql/my.cnf hinzufüge

# 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

Der Server hat ungefähr 7 GB Speicher und betreibt auch einen Webserver, daher denke ich, dass diese Zahlen ein guter Ausgangspunkt sein sollten. Nach dem Speichern und Neustarten des Servers scheinen die Änderungen jedoch nicht wirksam geworden zu sein. Ich habe versucht, Mysqltuner auszuführen, wobei gemeldet wurde, dass der Pufferpool immer noch bei 16,0 MB liegt. Irgendeine Idee, was ich falsch mache? Lassen Sie mich wissen, ob Sie mehr von der Konfigurationsdatei sehen möchten. Vielen Dank!


Welche Verteilung? Verwenden Sie die Pakete der Distribution oder etwas anderes? Wie fängst du MySQL an? Kurz gesagt, was haben Sie installiert, worauf haben Sie es installiert und wie haben Sie es installiert?
Navaho

Es ist der Standard-Lampenstapel auf dem Ubuntu-Server x64
tgrosinger

In / opt / lampp / etc befand sich eine weitere Konfigurationsdatei, von der ich glaube, dass sie funktionieren wird.
Tgrosinger

Antworten:


7

Stellen Sie sicher, dass sich diese Zeilen innerhalb des [mysqld]Abschnitts befinden, dh nach, [mysqld]aber vor allen anderen, [section]z [mysqldump].


Sie befinden sich im richtigen Abschnitt in [mysqld] kurz vor [mysqldump]
tgrosinger

2

Überprüfen Sie Ihr MySQL-Fehlerprotokoll auf Informationen - wahrscheinlich in /var/lib/mysql-. Ist dies auch ein 32-Bit-System mit dem Bigmem-Kernel? In diesem Fall können Sie nicht mehr als 2 GB für MySQL adressieren.

Außerdem - Sie möchten von MySQL selbst die Größe des Pufferpools bestätigen - klingt 16 MB etwas abweichend, wenn man bedenkt, dass der Standardwert 128 MB ist. Sie können dies bestätigen, indem Sie 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'in eine MySQL-Sitzung für diesen Server eingeben. Ergebnis ist in Bytes.


Aus irgendeinem Grund kann ich nicht in dieses Verzeichnis gelangen. Ich kann es sehen, wenn ich ls auf / var / lib mache, aber wenn ich versuche, darin zu cd, bekomme ich "Erlaubnis verweigert". Wenn ich versuche, als Sudo einzudringen, heißt es "Keine solche Datei oder kein solches Verzeichnis". Gedanken? Es ist eine 64-Bit-Installation von Ubuntu Server.
Tgrosinger

Sie sollten Ihre my.cnf (/etc/my.cnf oder auf debian wahrscheinlich /etc/mysql/my.cnf)
thinice

Außerdem - Sie möchten von MySQL selbst die Größe des Pufferpools bestätigen - klingt 16 MB etwas abweichend, wenn man bedenkt, dass der Standardwert 128 MB ist. Sie können dies bestätigen, indem Sie 'SHOW VARIABLES LIKE' innodb_buffer_pool_size 'in eine MySQL-Sitzung für diesen Server eingeben. Ergebnis ist in Bytes.
Thinice

1
sudo cdfunktioniert nicht, da sudo eine Subshell mit den richtigen Berechtigungen erstellt und diese schließt, wenn Sie fertig sind, sodass Sie dort bleiben, wo Sie begonnen haben. Versuchen Sie es sudo -sstattdessen.
Ladadadada

Wenn ich also SHOW VARIABLES LIKE verwende, heißt es, dass die Größe des Pufferpools 16777216 beträgt, was meiner Meinung nach tatsächlich 16 MB beträgt. Hier ist die my.cnf: hastebin.com/binaqeforu.vala Vielen Dank!
Tgrosinger

2

In meinem Fall war das Problem innodb_buffer_pool_instances.

Da ich reduzierte innodb_buffer_pool_size, wurde es weniger als 1 GB pro Instanz, so dass es schließlich abgerundet wurde.

Als ich auch die Instanzen reduzierte , änderte sich schließlich die Poolgröße !


0

Möglicherweise starten Sie mysql mit --no-defaults oder (-no-defaults), wodurch keine Konfiguration geladen wird. Es gibt auch --defaults-file (oder -default-file, nicht sicher), wodurch eine bestimmte Konfiguration geladen wird. Überprüfen Sie auch, ob es sich um eine andere Konfiguration handelt als die, die Sie bearbeiten.

Sie können versuchen, mit zu beginnen:

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

Oder überprüfen Sie die Parameter, mit denen Sie bereits beginnen, und prüfen Sie, ob einer von ihnen dazu führt, dass die Konfiguration weggelassen wird.


Wie kann ich sehen, wie es in Ubuntu startet? Ich bin es gewohnt zu archivieren, wenn ich es einfach zur rc.d-Datei hinzufügen würde, aber ich sehe so etwas hier nicht.
Tgrosinger

Arch verwendet BSD Style Init, während Ubuntu SysV Init verwendet. Es gibt also eine Datei in /etc/init.d, um sie zu starten, und möglicherweise eine Datei in / etc / defaults, in der Optionen festgelegt werden. Indem Sie etwas in der Art von 'ps -ef | verwenden grep mysql 'Sie können sehen, mit welchen Optionen es derzeit ausgeführt wird.
Juwi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.