Query-Optimierung via DB2-Monitoring
Artikel erschienen in Swiss IT Magazine 2009/07
Die genossenschaftlich verankerte Mobiliar betreut rund 1,3 Millionen Versicherte mit einem Prämienvolumen von 2,7 Milliarden Franken. Mit ihrem Gründungsjahr 1826 ist die Mobiliar nicht nur eine der grössten, sondern auch die älteste private Versicherungsgesellschaft der Schweiz. «An einem durchschnittlichen Tag haben wir 500 bis 600 Millionen Zugriffe auf die zentrale DB2-Datenbank», hält Thomas Baumann fest, der bei der Schweizerischen Mobiliar für das Datenmanagement zuständig ist.
Vor einiger Zeit löste die Mobiliar bestehende Batch-Systeme durch eine neue Online-Anwendung ab, die den Mitarbeitern im Innen- und Aussendienst direkten Zugriff auf die Kundendossiers ermöglicht. Bei der Produktionsaufnahme kam es zu spürbaren Locking- und Performanceproblemen, die innert einiger Tage mit Notfallmassnahmen behoben werden konnten. «Auch danach hatten die Benutzer aber noch mit teils sehr langen Antwortzeiten zu kämpfen», berichtet Baumann. «Als Hauptgrund konnten wir nicht optimal gelöste Datenbankzugriffe identifi zieren.»
Für die Überwachung und Analyse der Datenbankleistung – die Kernanwendungen der Mobiliar laufen auf Sytem/Z-Mainframes und basieren auf einer DB2-Datenbank – setzt die Mobiliar auf das Monitoring-Tool Apptune for DB2 von BMC Software. Apptune ist bei der Mobiliar zwar schon seit zehn Jahren im Einsatz, spielte jedoch für den Performance-Tuning-Prozess, den das Team von Thomas Baumann nach den Erfahrungen mit der neuen Online-Anwendung aufbaute, eine essentielle Rolle. Apptune kommt in drei verschiedenen Modi zum Einsatz:
«Performance-Management beruht auf verschiedenen Pfeilern», hält Baumann fest. «Die Analyse der Datenbankzugriffe ist eine wichtige Grundlage, es kommt in der Folge aber auch auf die Ausbildung der Entwickler an. Apptune hat sich bei beiden Aspekten als nützlich erwiesen.»
Die hauptsächliche Kenngrösse beim DB2-Monitoring ist die CPU-Leistung, die pro Query benötigt wird. Bei der Mobiliar läuft die Monitoring-Software im Dauerbetrieb, rapportiert aber jeweils nur diejenigen Zugriffe, die ein bestimmtes Limit überschreiten. «So reduziert sich die Anzahl der Zugriffe, die im Detail erfasst werden, auf einige Tausend pro Tag.»
Die so ermittelten zeitintensiven SQL-Statements werden markiert und lassen sich im interaktiven Analysewerkzeug von Apptune näher unter die Lupe nehmen und im Bedarfsfall optimieren. Im Lauf der Zeit liessen sich die Anwendungen auf dieser Grundlage immer weiter optimieren, und die Mobiliar konnte die Obergrenze von anfangs 100 auf heute 80 Millisekunden pro Anfrage senken.
Auch Queries, die einzeln zwar weniger Zeit benötigten als im Grenzwert festgelegt, dafür aber sehr oft durchgeführt werden, können den Anwendungsbetrieb negativ beeinflussen. Die Mobiliar hat deshalb als Ergänzung zum laufenden Monitoring ein Alarmsystem entwickelt, das den Datenbankadministrator benachrichtigt, wenn eine Abfrage innerhalb eines Tages insgesamt mehr als 60 Sekunden CPU-Zeit in Anspruch nimmt.
«Einmal pro Monat lassen wir Apptune einen ganzen Tag lang in einem anderen Modus laufen: Wir zeichnen alle Datenbankzugriffe auf, nicht nur die zeitintensiven Ausnahmen. Daraus erzeugen wir Statistiken, aus denen wir Trends ableiten können», beschreibt Baumann das zweite Einsatzgebiet von Apptune: «Eine Zahl, die sich nur so ermitteln lässt, ist zum Beispiel die durchschnittliche Dauer einer Abfrage. Solche Daten fliessen dann in unsere Zielvereinbarungen ein.» Die Entwicklung zeigt, dass die Trendermittlung und die daraus folgende Optimierung der Datenbankzugriffe Früchte trägt. Von Anfang 2004 bis Anfang 2009 sank die pro Query benötigte Maschinenzeit um rund zwei Drittel.
Die Erfassung aller Queries bringt natürlich bedeutend mehr Aufwand mit sich, deshalb läuft Apptune nur einmal monatlich 24 Stunden lang in diesem Modus.
Für die dritte Aufgabe wird Apptune einmal pro Woche herangezogen: Die Mobiliar misst analog zur monatlichen Trendermittlung auch im Wochenrhythmus während jeweils einer Stunde alle Zugriffe und generiert einen ausführlichen Bericht. Die statistischen Vorhersagen zum Zeitbedarf pro Query können so mit den effektiven Werten verglichen werden. Falls sich eine zu hohe Differenz ergibt, müssen die Katalogstatis-tiken neu berechnet werden.
Laut Thomas Baumann verursacht Apptune nur eine geringe zusätzliche Systembelastung: «Der Ressourcenbedarf für das Monitoring hängt stark davon ab, wie viele Daten man erfasst. Die Grundlast liegt vielleicht bei 3 bis 4 Prozent. Wenn man bei jedem Zugriff alle Details aufzeichnet und zum Beispiel bei einem komplizierten Join genau wissen will, wie viele Pages von welchen Tabellen geladen werden, steigt der Bedarf massiv. Solche vertieften Analysen nimmt man deshalb nur ganz gezielt im Fall eines konkreten Problems vor.»
Vor Apptune setzte die Mobiliar für das DB2-Monitoring ein anderes Produkt ein, das laut Baumann deutlich mehr Ressourcen beanspruchte und weniger detaillierte Analysen zuliess. «Apptune hat überdies eine Optik, die auch der Anwendungsentwickler versteht.» Dies ist für Baumann ein äusserst wichtiges Merkmal: Die Mobiliar nutzt Apptune nicht nur für statistische Auswertungen, sondern auch als Hilfsmittel für die Entwickler.
«Systembetreuer und Entwicker können aufgrund der Apptune-Analysen in Zusammenarbeit auch Probleme ermitteln, die einer allein nicht erkennt – zum Beispiel ein SQL-Statement, das eigentlich korrekt aussieht, in einer bestimmten Anwendung aber unnötig oft aufgerufen wird. Dies ist nur mit einem Werkzeug möglich, das beide Seiten verstehen.»
Insgesamt arbeiten bei der Mobiliar rund 100 Personen mit Apptune, die einen intensiv und praktisch täglich, die meisten eher gelegentlich. «Apptune ist eines der wenigen Monitoring-Werkzeuge, die auch einem Gelegenheitsanwender rasch Nutzen bringen», stellt Baumann fest und betont, bei der Mobiliar sei Apptune die einzige Software für die Überwachung der Datenbankzugriffe: «Wir betreiben daneben keinen reinen Performance-Monitor.»
In Franken lässt sich der Nutzen einer Monitoring-Lösung nur schwer beziffern, meint Thomas Baumann. «Auf der Aufwandseite sind die Lizenzkosten und die benötigte Maschinenleistung zu berücksichtigen. Nur weil die Software läuft, wird aber noch nichts automatisch besser: Die auf Basis der Query-Analyse möglichen Optimierungen lassen sich ausserdem nicht ausschliesslich der Monitoring-Software zurechnen – sonst wäre sie schon mit der Lösung eines einzigen schwierigen Problems in ein paar Stunden amortisiert.»
Der Vorteil einer konsequenten Überwachung der Datenbankzugriffe liegt für Thomas Baumann unter anderem darin, dass Probleme sehr früh erkannt werden: «Man entdeckt Kandidaten für die Optimierung viel schneller. Probleme mit neuen Anwendungen fallen schon vor der Aufnahme des produktiven Betriebs auf, Störungen bei bestehenden Applikationen lassen sich ermitteln, bevor sich ein Nutzer beim Service Desk meldet. Die Inves-tition in die Monitoring-Lösung lässt sich gegenüber der Geschäftsleitung durchaus gut begründen.»
· Bei der Einführung neuer Anwendungen kam es bei der Schweizerischen Mobiliar zu Performanceproblemen und langen Antwortzeiten.
· Als Hauptgrund wurden nicht optimal gelöste DB2-Zugriffe identifiziert.
· Die Mobiliar überwacht den DB2-Verkehr permanent auf Queries, die mehr CPU-Zeit benötigen als in einem empirisch ermittelten Grenzwert festgelegt wurde, und hält diese in einem Bericht fest.
· Die Analyse der so ermittelten «Ausreisser» hilft den Entwicklern, ihre Querys zu optimieren.
· Permanentes Monitoring ermöglicht es auch, Probleme bereits zu erkennen, bevor sie sich negativ auswirken.
· Zu statistischen Zwecken werden einmal monatlich während eines ganzen Tages sämtliche 500 bis 600 Millionen Zugriffe aufgezeichnet.
(ubi)