Benchmark für die Datenbank
Wie lässt sich die Performance (m)einer Datenbank objektiv beurteilen?
Diese Frage stellt sich neben den Herstellern gelegentlich auch den Betreibern einer Datenbank. Eine Antwort gibt hier eine Organisation mit dem Namen TPC (Transaction Processing Performance Council). Diese Vereinigung definiert Benchmarks fuer Transaktionsverarbeitung mit Datenbanken. Die Definitionen sind nach Verwendungszweck in 4 Gruppen aufgeteilt und mit Buchstaben gekennzeichnet.
TPC-C OLTP
TPC-H Decision Support for adhoc-Queries
TPC-W Web, e-commerce
TPC-R Decision Support for Business-Reporting
Detaillierte Informationen zu diesen Benchmarks finden Sie im Internet unter folgender URL:
Selber machen...
Nun möchte man so einen Test mit der eigenen Datenbank und auf dem eigenen Server durchführen. Man muss dazu auf der eigenen Datenbank eine definierte Last erzeugen und dann den Durchsatz messen.
Die dazu erforderlichen Werkzeuge gibt es im Netz bei:
http://hammerora.sourceforge.net/
Das Projekt Hammerora stellt einen Last-Generator für Oracle-Datenbanken der Versionen 8i, 9i und 10g unter Linux/Unix und Windows bereit. Dieses Tool unterstützt sowohl die Erstellung und Ausführung eigener Testszenarien als auch die Durchführung von Lasttests nach den TPC-C-Vorgaben. Zunächst ist die X-Applikation „Hammerora“ zu installieren. Diese ist auf deren Internetseiten ausführlich dokumentiert:
http://hammerora.sourceforge.net/installation.htm
Voraussetzung ist eine entsprechende Entwicklungsumgebung incl. GNU-C-Compiler und X-Development-Umgebung. Die ist unter Linux entweder schon vorhanden oder kann mit den entsprechenden Packages nachinstalliert werden. Hat man diesen Schritt geschafft, kann es auch schon losgehen! Nach dem Start der Hammerora-Applikation wird zunächst festgelegt, welches Szenario getestet werden soll. Dazu wird ein TKL-Skript benötigt, welches die Oracle-Zugriffe per OCI realisiert. Dieses Skript kann aus eigenen Zugriffen auf die eigene (produktive) Datenbank generiert werden (dazu wird ein Oracle-Trace-File benötigt) oder es kann auch fertig von Hammerora übernommen werden, um z.B. die von TPC-C definierten Zugriffe zu realisieren. Im zweiten Fall ist die erforderliche Datenbankumgebung einzurichten, was jedoch nach ein paar kleinen Eingaben komplett die Hammerora-Applikation für uns übernimmt.
Virtuelle User einrichten...
Bevor der Lasttest loslaufen kann, muss festgelegt werden, welche Datenbank getestet wird und wie viele User das TKL-Skript parallel abarbeiten sollen.
Transaktionszähler einrichten...
Um den Durchsatz der getesteten Datenbank sofort anzuzeigen, enthält Hammerora ein Modul zur Anzeige und grafischen Aufbereitung der Anzahl der verarbeiteten Transaktionen. Über den Menüpunkt TransactionCounter-Options wird eingestellt, in welchen Zeitintervallen die Abfragen für die Ermittlung des Durchsatzes auszuführen sind.
Lasttest durchführen...
Der Test wird einfach über das Icon „Run Hammerora Loadtest“ angestoßen. Im unteren Teil des Applikations-Fensters wird der Verlauf des Tests angezeigt. Für jeden virtuellen User wird in einer Zeile dessen Thread-Id sowie die Anzahl der bereits durchgeführten Iterationen und der Status dargestellt.
Fazit...
Das Projekt Hammerora bietet eine komfortable und kostenfreie Möglichkeit, Lasttests auf der eigenen Datenbank durchzuführen. Es können sowohl die vorbereiteten Skripten nach TPC-C als auch eigene aus Trace-Files generierbare Skripten eingesetzt werden. Das Paket macht einen runden Eindruck und hat in der Testumgebung (Redhat-Linux 2.4.21-4.EL mit Oracle 9.2.0.4 Datenbank) problemlos funktioniert.
Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.