|
30 | Hilfe beim Datenbankentwurf
Ein guter ER-Modeler nimmt dem Datenbankdesigner viel Arbeit ab und bewahrt ihn vor Flüchtigkeitsfehlern.
32 | Alles in einem
Die neue Version des Aqua Data Studio erweist sich als nützliches Universalwerkzeug für den DBA unter Linux.
36 | MySQL-Tuning
Ein Datenbankbenchmark hilft beim Optimieren einer MySQL-Installation und offenbart überraschende Ergebnisse.
42 | Monitoring
Messen ist die Grundlage gezielter Optimierung. Unter Linux
existiert eine Vielzahl von Monitoring-Tools für diesen Zweck.
|
"In jenen Tagen gab es auf der Erde die Riesen, und auch später noch, nachdem sich die Gottessöhne mit den Menschentöchtern eingelassen und diese ihnen Kinder geboren hatten. Das sind die Helden der Vorzeit, die berühmten Männer." (1. Mose 6, Vers 4)
Losgelöst von allen Glaubensfragen: Chronisten, die von Wesen berichten, die ihre Köpfe in den Wolken tragen, müssen maßlos übertreiben. Denn Fakt ist: Gestalten mit einer derartigen Statur würden unter dem eigenen Gewicht zusammenbrechen.
Obwohl die Knochen des Homo sapiens die Tragkraft von Granit und die Zugfestigkeit von Gusseisen haben, wurde der größte bekannte Riese, der tatsächlich lebte, der Amerikaner Robert Wadlow, gerade 2,77 Meter. Er starb im Juni 1940 im Alter von 22 Jahren mit 2,72 Metern und wäre vermutlich noch 2,88 Meter groß geworden, rund das anderthalbfache Normalmaß. Der Mensch skaliert nicht endlos.
Nicht einmal Computer tun das. Auch ihnen wird ihr "Gewicht" zum Verhängnis - übertragen in die Sprache der Software ist das beispielsweise der Verwaltungsoverhead für die Koordination von immer mehr Threads oder CPU-Kernen. Wer genauer hinsieht, findet drei limitierende Faktoren:
-
Die Konkurrenz um Ressourcen, die zu einer Zeit nur einen
Nutzer haben können.
-
Der serielle Rest nicht parallelisierbarer Arbeiten, der von
einer größeren Anzahl CPUs (oder Platten oder
Speicherzellen) nicht profitiert, weil er nicht verteilbar
ist.
-
Der Verwaltungsoverhead für die Ressourcen, der zwar
Arbeit verursacht, aber nichts zum gewünschten Ergebnis
beiträgt.
Berechenbares Optimum
Das alles ist berechenbar. In der Tat entstand im Lauf der Zeit sogar eine ganze Reihe von mathematischen Modellen für die Skalierbarkeit von Computerressourcen: Amdahl\'s Law, Gustafsons Law... Eine aktuelle Theorie ist die Universal Law On Computational Scalability des amerikanischen Computerwissenschaftlers und Experten für Capacity Planning Neil Gunther. Sie mündet in einer Funktionsgleichung, die dabei hilft, im Vorhinein die optimale Ausstattung eines Servers zu berechnen.
Gegenseitige Bestätigung
Dazu gibt es Neuigkeiten. Erst in diesem Sommer nämlich gelang es Gunther zu zeigen, dass bestimmte Modelle der Queueing-Theorie, namentlich das so genannte Machine-Repairman-Modell (M/M/1//p), zu den gleichen Ergebnissen führen wie sein parametrisches Modell der Universal Law On Scalability. Die Ansätze bestätigen sich gegenseitig und verweisen darauf, dass tatsächlich eine universelle Gesetzmäßigkeit die Grenzen absteckt, innerhalb derer Hard- oder Software skalieren können.
Alles graue Theorie? Keineswegs. Für diesen Schwerpunkt hat die Redaktion mehrere Hundert Stunden Datenbankbenchmarks laufen lassen und eines der sicher überraschenden Ergebnisse war: MySQL wird mit mehr CPUs unter Umständen langsamer.
Der Grund für dieses scheinbare Paradoxon liegt genau darin, dass die Bremsfaktoren der Skalierbarkeit hier die Oberhand gewinnen. MySQL kann eine Query immer nur auf einer CPU laufen lassen. Dadurch wächst der schon erwähnte nicht verteilbare, serielle Anteil des Workloads. Gleichzeitig frisst aber die Verwaltungsbürokratie Zeit - und zwar umso mehr, je mehr Komponenten ins Spiel kommen - und die Plattenzugriffe gelingen schließlich auch nur seriell. Damit kann sich der Effekt von mehr Hardware in sein Gegenteil verkehren: Zu viel ist weniger.