Seite wählen

MySQL New Features – Background I/O Threads

von | Feb 23, 2011 | MySQL

Vor knapp zwei Wochen hatte ich die MySQL New Features Serie mit dem Thema Semisynchronous Replication gestartet. Als eines der Features, welches auch ohne tief gehendes Verständnis der Datenbankarchitektur in vielen Umgebungen Verwendung finden kann, bereits eine echte Bereicherung.
Gerade unter der Haube im Bereich der Storage-Engines und vor allem InnoDB ist viel passiert. In den letzten Jahren musste sich MySQL immer wieder den Vorwurf gefallen lassen, aktuelle Hardware nicht ausreichend auszulasten und gerade im SMP-Bereich hinter alternativen Datenbank zurückzufallen. Einem besonderen Kritikpunkt hat sich SUN/Oracle ebenfalls in der Version 5.5 angenommen.
Gemeint sind hier die so genannten Background I/O Threads, welche für die Verarbeitung von Prefetches und dem Schreiben von Dirty Pages verantwortlich sind. Für das Prefetching kennt MySQL grundsätzlich zwei Entscheidungsregeln. Einmal das Vorablesen von Blöcken bei Identifizierung eines sequentiellen Lesevorgangs oder der überdurchschnittlicher Leserate in bestimmten Speicherblöcken und somit vorsorglicher Leseverarbeitung der beteiligten Blöcke. In den bisherigen MySQL-Versionen gab es hierfür genau einen Thread, der aktuelle Serverhardware und vorallem Speichersubsysteme nicht wirklich vollständig auslasten konnte. Hierfür gibt es seit Version 5.5 nun den Parameter innodb_read_io_threads, der eine dynamische Konfiguration der Read-Threads und somit optimierte Auslastung des Plattensubsystems ermöglicht.
In die andere Richtung, nämlich dem Schreiben von veränderten Datenblöcken aus dem Buffer-Cache auf die Disk ist ebenfalls die Möglichkeit zum Feintuning, hier innodb_write_io_threads entstanden. Bei modernen RAID-Controllern wird das Tuning der read_io_threads vermutlich den größeren Erfolg versprechen, da Schreibvorgänge häufig schon im Cache der Controller acknowledged und somit als abgeschlossen markiert werden.
Beide Parameter bedürfen im Praxisbetrieb genauer Beobachtung und können bei Überstrapazierung auch zu steigendem I/O-Waits auf den Disks führen. Wie immer bei Tuning gilt auch hier der Grundsatz nicht alle Schrauben gleichzeitig zu drehen, sondern verschiedene Kombinationen über die Zeit zu nutzen und die gewonnenen Ergebnisse zu dokumentieren und vergleichen.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

0 Kommentare

Trackbacks/Pingbacks

  1. Weekly Snap: MySQL Threads, OSDC Partners & an OSBF Job › NETWAYS Blog - [...] replication, Bernd continued onto part 2 of his MySQL New Features series, with a look at background I/O threads.…
  2. Weekly Snap: UKUUG Spring Conference + Automation, MySQL & Puppet Camp Tips › NETWAYS Blog - […] New Features series – Pluggable Authentication. Moving on from Semisynchronous Replication and Background I/O Threads, he looked at the…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema MySQL

Alle User in MySQL anzeigen

Oftmals wachsen Datenbankinstallationen im Laufe der Zeit und man legt immer wieder für neue Projekte neue Datenbanknutzer an. Um hier den Überblick zu behalten, zeige ich kurz, wie man sich die jeweiligen Nutzer anzeigen lassen kann. Voraussetzungen: Command...

Monitor das Monitoring_by_ssh

Hellow, heute möchte ich euch zeigen, wie man schnell und einfach mit Icinga 2 seine bestehende Icinga 2 Infrastruktur monitoren kann. Jeder der sich damit schon mal befasst hat, wird schnell zu dem Ergebnis kommen: "Hey warte mal den Master kann ich ja nicht auf den...

rsync und was dann?

Diese Woche hatte ich die zweifelhafte Ehre die mit 1,6TB schon etwas größere MySQL-Datenbank (MariaDB) eines Kunden auf den zweiten Datenbankknoten zu spielen. Dabei war die Herausforderung das die ganze Show außerhalb der Geschäftszeiten von 17:30 Uhr bis max. 5:00...