320 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
bis Sie entweder keine Netzwerk-Bandbreite mehr haben oder bis Ihre Aktualisierungslast
so weit ansteigt, dass der Master sie nicht mehr handhaben kann.
Im festlegen zu k¨onnen, wie viele Slaves sie haben k¨onnen, bevor die zus¨atzlichen Vorteile
aufgewogen werden, und um wieviel Sie die Performance Ihrer Site steigern k¨onnen, m¨ussen
Sie Ihre Anfragenmuster kennen und empirisch (durch Benchmarks) festlegen, wie das
Verh¨altnis zwischen dem Durchsatz von Lesevorg¨angen (pro Sekunde, oder max_reads) und
Schreibvorg¨angen (max_writes) auf einem typischen Master und einem typischen Slave ist.
Das unten stehende Beispiel zeigt Ihnen eine eher vereinfachte Berechnung, was Sie mit
Replikation f¨ur ein imagin¨ares System erreichen k¨onnen.
Nehmen wir an, Ihr Systemlast besteht aus 10% Schreibvorg¨angen und 90% Lesevorg¨angen,
und Sie haben festgestellt, dass max_reads = 1200 - 2 * max_writes ist. Mit anderen
Worten kann Ihr System 1.200 Lesevorg¨ange pro Sekunde ohne Schreibzugriffe ausf¨uhren,
und der durchschnittliche Schreibvorgang ist zweimal so langsam wie der durchschnittliche
Lesevorgang, und das Verh¨altnis ist linear. Nehmen wir ferner an, dass Ihr Master und
Slave dieselbe Kapazit¨at haben, und dass es N Slaves und 1 Master gibt. Dann gilt f¨ur
jeden Server (Master oder Slave):
lesen = 1200 - 2 * schreiben (aus Benchmarks)
lesen = 9 * schreiben / (N + 1) (lesen aufgeteilt, aber schreiben geht an alle Server)
9 * schreiben / (N+1) + 2 * schreiben = 1200
schreiben = 1200/(2 + 9/(N+1)
Wenn also N = 0, was bedeutet, dass es keine Replikation gibt, kann Ihr System 1200 / 11,
also etwa 109 Schreibvorg¨ange pro Sekunden handhaben (was heißt, dass Sie neunmal so
viele Lesevorg¨ange haben, was der Natur Ihrer Applikation entspricht).
Wenn N = 1 ist, k¨onnen Sie bis zu 184 Schreibvorg¨ange pro Sekunde haben.
Wenn N = 8 ist, k¨onnen Sie bis zu 400 haben.
Wenn N = 17 ist, k¨onnen Sie 480 haben.
Wenn schließlich N gegen unendlich geht (und Ihr Budget gegen negativ unendlich), k¨onnen
Sie sehr nahe an 600 Schreibvorg¨ange pro Sekunde kommen und damit den Systemdurchsatz
um etwa den Faktor 5,5 erh¨ohen. Mit nur 8 Servern jedoch kommen Sie bereits auf eine
Steigerung um fast den Faktor 4.
Beachten Sie, dass diese Berechnungen von unbegrenzter Netzwerk-Bandbreite ausgehen
und verschiedene andere Faktoren vernachl¨assigen, die auf Ihrem System signifikant sein
k¨onnten. In vielen F¨allen werden Sie nicht in der Lage sein, pr¨azise vorauszusagen, was auf
Ihrem System passieren wird, wenn Sie N Replikations-Slaves hinzuf¨ugen. Dennoch kann
die Beantwortung folgender Fragen Ihnen helfen zu entscheiden, ob und wie viel (wenn
¨uberhaupt) Replikation bewirken kann, dass sich Ihre System-Performance verbessert:
• Was ist das Lese-/Schreibverh¨altnis auf Ihrem System?
• Wieviel zus¨atzliche Schreiblast kann ein Server handhaben, wenn Sie die Leselast ver-
ringern?
• F¨ur wie viele Slave haben Sie Bandbreite auf Ihrem Netzwerk?
Frage: Wie kann ich Replikation benutzen, um Redundanz / hohe Verf¨ugbarkeit zur
Verf¨ugung zu stellen?
Comentários a estes Manuais