Ich weiß, dass der Konsens zu sein scheint, dass ungefähr 75% des RAM für den Pufferpool bestimmt sein sollten. Ich bin jedoch mehr an der optimalen Anzahl von Pufferpoolinstanzen interessiert. Was sind bei der Festlegung der Einstellung zu beachten?
Angenommen, ich habe einen Pufferpool von 75 GB. Sollte ich nur 75 Pufferpoolinstanzen mit jeweils 1 GB zuweisen? 15 zu je 5 GB? Oder 10 zu je 7,5 GB?
Sollte ich mit einem einzelnen Pufferpool beginnen und mich erhöhen, je nachdem, ob ich eine Sperre sehe oder nicht?
Worauf sollte die maximale Anzahl von Instanzen basieren - verfügbare Kerne?
Vielen Dank - Ihre Antwort wird sehr geschätzt.
Antworten:
PUFFER POOL INSTANZEN
Die Faustregel, die ich normalerweise verwende, basiert auf einem speziellen Programm in der Linux-Umgebung
Wenn ich dies ausführe, erhalte ich die folgende Ausgabe
Dies sagt mir schnell, wie viele CPUs und Kerne ich auf meinem DB Server habe.
Im Allgemeinen setze ich die innodb_buffer_pool_instances auf die Anzahl der physischen CPUs oder die Anzahl der Kerne. In Ihrem speziellen Fall setze ich die innodb_buffer_pool_instances auf 4 oder 16.
PUFFER POOL GRÖSSE
Wenn Sie den InnoDB-Pufferpool größer als 50% des installierten Arbeitsspeichers machen, beginnt mysqld, das Betriebssystem auszutauschen ... SCHLECHT !!!! Wenn Sie einen so großen Pufferpool benötigen, wird das Optimieren von innodb_buffer_pool_instances noch wichtiger.
EPILOG
Sobald innodb_buffer_pool_instances zum ersten Mal eingeführt wurde, habe ich sofort damit experimentiert. Ich hatte einen Client mit 192 GB DB Server, zwei Hexacore mit einem 162 GB Pufferpool. Ich habe es einfach auf 2 gesetzt und alles hat gut geklappt. Bitte lesen Sie meinen alten Beitrag vom 12. Februar 2011 dazu: Wie können Sie MySQL auf eine hohe InnoDB-Arbeitslast einstellen?
VERSUCHE ES !!!
quelle
Sie sollten eine Kombination von
innodb_buffer_pool_size
in Übereinstimmung mit verwendeninnodb_buffer_pool_instances
Sie sollten die
innodb_buffer_pool_instances
Konfigurationsoption auf einen Wert größer als 1 (Standard) bis 64 (maximal) einstellen . Diese Option wird nur wirksam, wenn Sieinnodb_buffer_pool_size
eine Größe von 1 Gigabyte oder mehr festlegen . Die von Ihnen angegebene Gesamtgröße wird auf alle Pufferpools aufgeteilt. Geben Sie für eine optimale Effizienz eine Kombination voninnodb_buffer_pool_instances
und an,innodb_buffer_pool_size
sodass jede Pufferpoolinstanz mindestens 1 Gigabyte beträgt.quelle