Kommentare 1

Performance-Tuning in PostgreSQL – Teil 2

Vor kurzem haben wir uns bereits mit Performance-Tuning in PostgreSQL beschäftigt. Dabei haben wir im ersten Teil des Buchauszugs aus PostgreSQL-Administrationvon Peter Eisentraut und Bernd Helmle drei Enpässe oder Flaschenhälse vorgestellt, die die Ausführung eines SQL-Befehls verlangsamen können. Im zweiten und letzten Teil stellen wir heute drei weitere Engpässe vor, die Sie zur Beschleunigung und Optimierung eines SQL-Befehls kennen sollten: nämlich Festplattenlatenz, Festplattenrotation und Netzwerkverbindungen.

Festplattenlatenz

Die Latenz eines Festplattensystems beschreibt, wie lange es dauert, bis eine bestimmte Information darauf gelesen werden kann, vor allem bedingt durch die nötigen mechanischen Bewegungen. Das fällt insbesondere bei Indexzugriffen ins Gewicht, da dort die Informationen naturgemäß nicht sequenziell, sondern verteilt vorliegen. Genau analysieren kann man diese Effekte als Anwender so gut wie nie. Man wird jedoch bemerken, dass bei wahlfreien Zugriffen wie einer Indexsuche der mit iostat oder ähnlichen Programmen beobachtete Festplattendurchsatz bei sehr niedrigen Werten wie 4 MByte/s sein Maximum zu erreichen scheint. Vermieden werden können Latenzeffekte am besten, indem man ausreichend RAM für die Indexe als Cache zur Verfügung stellt. Dadurch fallen die mit der Festplatte verbundenen mechanischen Effekte aus, und wahlfreie Lesezugriffe haben im Prinzip die gleiche Zugriffszeit wie sequenzielle. Externe Speichersysteme (SAN, NAS) haben intern ausgeklügelte Cachemechanismen, die ebenfalls die Latenzzeit verringern können. Beim Einsatz von Solid State Drives (SSDs) statt herkömmlicher Festplatten fallen die durch die Mechanik verursachten Latenzeffekte weg.

Festplattenrotation

Die Rotationsgeschwindigkeit moderner Festplatten für Serversysteme beträgt üblicherweise 7.200 rpm, 10.000 rpm oder 15.000 rpm. Sie beeinflusst natürlich zunächst den möglichen Durchsatz und die Latenz. Außerdem beeinflusst die Rotationsgeschwindigkeit die maximale Transaktionsrate, da für jede (schreibende) Transaktion ein WAL-Eintrag auf die Festplatte geschrieben werden muss. SSDs haben diese Probleme nicht; dort ist ausschließlich die Mikroelektronik der begrenzende Faktor.

Netzwerkverbindung

Die Geschwindigkeit der Netzwerkverbindung ist in den meisten Anwendungen nicht das Problem. Oft werden nur wenige Ergebnisse gesucht oder die Daten als Statistik zusammengefasst, und diese kleinen Ergebnismengen können über jede Netzwerkverbindung einigermaßen schnell transportiert werden. Wenn allerdings ganze Tabelleninhalte transportiert werden sollen, zum Beispiel zur Datensicherung oder zur Verarbeitung andernorts, dann kann die Geschwindigkeit der Netzwerkverbindung zum Problem werden. Das heute im Serverbereich übliche Gigabit-Ethernet kann ungefähr 100 MByte/s transportieren, gesetzt den Fall, dass niemand sonst das Netzwerk benutzt und die Switches und Router entsprechend ausgelegt sind. Das ist also schon langsamer als der mit den leistungsfähigsten Festplattensystemen mögliche Durchsatz. Im Extremfall kann die Aufrüstung auf 10-Gigabit-Ethernet Abhilfe schaffen, aber diese Hardware ist noch nicht weit verbreitet.

Im O’Reilly Verlag ist die zweite Auflage des Buchs “PostgreSQL-Administration” von Peter Eisentraut und Bernd Helmle erschienen. In der komplett aktualisierten Auflage erläutern die Autoren, wie der Zustand und das Verhalten eines PostgreSQL-Servers überwacht und analysiert werden können, wie man SQL-Befehle schneller machen kann oder wie Daten vor unberechtigtem Zugriff abgesichert werden können.

2/2

Sag's weiter:

1 Kommentare

Schreibe einen Kommentar

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