Ich habe DRBD auf 2 Knoten eingerichtet und gestern damit begonnen. Nach ungefähr einer Stunde hatte es 50% der Partition neu synchronisiert. Weitere 12 Stunden vergingen und es sind bis zu 79% und es bewegt sich SEHR langsam.
Folgendes zeigt cat / proc / drbd:
1: cs:SyncTarget ro:Primary/Secondary ds:Inconsistent/UpToDate C r-----
ns:464931976 nr:191087032 dw:656013660 dr:214780588 al:100703 bm:21100 lo:7 pe:0 ua:0 ap:7 ep:1 wo:f oos:92241852
[==============>.....] sync'ed: 79.2% (90076/431396)M
finish: 76:13:38 speed: 332 (8,680) want: 19,480 K/sec
Ich habe mir den Netzwerkverkehr angesehen und verwende zwischen 1M und 20M auf einer 1G-Schnittstelle. Ich habe versucht, iperf auszuführen, während das alles läuft, und ich bekomme 930 Millionen Messwerte. Es wurde versucht, die Syncer-Rate ohne Erfolg auf 10M, 50M, 500M einzustellen. Optimierte Paketgröße auch ohne Glück.
Wie Sie aus dem Status ersehen können, besteht die Einschränkung darin, dass mein Primärknoten inkonsistent ist. Ich gehe also davon aus, dass das Betriebssystem während der Resynchronisierung im Wesentlichen mit einem sekundären Knoten arbeitet. Angesichts des geringen Durchsatzes verstehe ich jedoch nicht, warum die Synchronisierung nicht schneller ist.
Irgendwelche Ideen, was ich als nächstes versuchen kann? Das geschätzte Ende von 76 Stunden ist nichts, worauf ich mich freue :( Insbesondere wenn ich den Grund nicht kenne, kommt es zu einer Art Ausfall, ich würde nicht wissen, wie ich das Array schnell auf Konsistenz bringen kann.
Vielen Dank!
BEARBEITEN: Ich habe die folgenden Einstellungen im Netzbereich ohne Erfolg versucht:
sndbuf-size 512k;
max-buffers 20480;
max-epoch-size 16384;
unplug-watermark 20480;
EDIT 2: Ohne ersichtlichen Grund sprang die Geschwindigkeit auf 10 ~ 30M, nachdem ich aufgehört hatte, alle Konfigurationen zu optimieren. Bis zu 98,8% synchronisiert und auf ~ 300K zurückgefallen. Keine Nachrichten in den Protokollen auf keinem der Server. Zufälligerweise sehe ich einen Anstieg der INSERT-Aktivität in der MySQL-Datenbank, der von dieser Partition ausgeführt wird. Irgendwelche Ideen?
EDIT 3: Version: 8.4.2 (API: 1 / Proto: 86-101)
Antworten:
Nach dem Kommentar von @Nils begann ich zu untersuchen, wie ausgelastet die Festplatten sind. Und bemerkte, dass ich viel mehr Lesevorgänge erhalte als vor der Neukonfiguration des Systems auf DRBD. Weitere Untersuchungen ergaben, dass die Festplattenauslastung nahezu 100% beträgt und die zu diesem Zeitpunkt ausgeführten Batch-Prozesse verlangsamt werden. Das Beheben der MySQL-Konfiguration zur Erhöhung der Pufferpoolgröße, um die meisten Lesevorgänge zu eliminieren, scheint das Problem behoben zu haben.
Das Problem war also, dass die Laufwerke so ausgelastet waren, dass sie nicht viel Resync-Arbeit erledigen konnten, die DRBD auf sie werfen wollte.
quelle
Versuchen Sie, eine Synchronisierungsrate zu erzwingen
Sie können dies auch nach dem Neustart über den Syncer {} in der Konfiguration einrichten
quelle
drbdadm disk-options --resync-rate=<rate> <resource>
Sie haben bereits die Ursache des Problems gefunden - schweres Lesen. Das Optimieren von
sndbuf-size
hilft zwar bei starkem Schreibvorgang (erhöht jedoch die Asynchronität im Protokoll-A-Modus),rcvbuf-size
könnte in Ihrem Fall hilfreich gewesen sein.Die bessere Lösung bestand jedoch darin, die Wurzel Ihres Problems zu entfernen.
Weitere Lesevorgänge könnten auch mit dem DRBD-Meta-Gerät zusammenhängen (obwohl ich das auch in Schreibsituationen erwarten würde).
quelle