it-swarm.com.de

Wie kann ich feststellen, wie viele IOPs ich für meine AWS RDS-Datenbank benötige?

Ich migriere einen Teil einer MySQL-Datenbank in AWS. Die fraglichen Daten sind zu 99% geschrieben, und jede Zeile enthält ungefähr 1 KB Varchar-Felder, eine Datums- und Uhrzeitangabe und 4 Zoll.

Ich schätze, dass wir in Spitzenzeiten zwischen 20 und 25.000 Datensätze pro Stunde einfügen müssen.

Ich habe iostat -h in der aktuellen Datenbank ausgeführt und es wurden ungefähr 40 tps gemeldet.

Wie finde ich heraus, welche Art von IOPS ich benötige?

14
chris

Du musst es testen.

Sie können einige Umschlagberechnungen durchführen, um die Anzahl der E/A pro Einfügung zu approximieren, sie mit der Anzahl der Transaktionen pro Sekunde zu multiplizieren, in einem Pufferraum usw. hinzuzufügen, aber es ist viel einfacher, sie einfach zu testen.

Am einfachsten ist es, eine bestmögliche Vermutung zuzuweisen und sie dann zu erhöhen oder zu verringern, um sie an die tatsächlichen Tests anzupassen. Dies ist einer der Vorteile der Verwendung einer Cloud-basierten Umgebung. Hardware-Änderungen verursachen nur geringe Kapitalkosten und solche Änderungen erfordern normalerweise nur Konfigurationsaktualisierungen. Mit EBS-Volumes können Sie nicht nur die Anzahl der IOPS erhöhen, sondern müssen auch die Größe des Volumes vergrößern 1 . Sie können jederzeit ein neues Volume erstellen und Ihre Daten kopieren. Es wird einige Ausfallzeiten geben, aber wenn Ihre Daten nicht riesig sind , sollten sie nicht viel sein, da es sich um eine Rohkopie handelt.

Hier ist eine Schätzung der Anzahl der erforderlichen E/A. Auch hier ist es nur eine Vermutung, da die Einzelheiten von der Anzahl der Indizes abhängen und davon, ob Ihr Verkehrsfluss reibungslos oder stachelig sein wird. Bei 25K tx/Stunde haben Sie ~ 7 tx/Sek. Die Größe jeder Zeile ist nicht besonders relevant, da sie kleiner als die Größe einer einzelnen E/A (4 KB) ist. Jede Transaktion wird irgendwo zwischen 1 und 5 IOP (primäre Einfügung plus ein paar Indexbaum-Einfügungen) ausgeführt, sagen wir also ~ 35/s.

Ich sage, fangen Sie mit dem Minimum von 100 IOPS an und skalieren Sie bei Bedarf.

11
sehrope

Ich habe das grundlegende iostat-Tool (iostat -h) verwendet, um eine Vorstellung davon zu bekommen, wie viele iops ich derzeit verwendet habe. Daraus extrapolierte ich, wie viel ich verwenden würde, wenn ich unter der vierfachen Last wäre, und ging mit dieser Menge. Für mich hat das auf 780 IOPS geklappt, also habe ich mich für 800 IOPS entschieden.

7
Mark D

Ich verwende iostat, um die Menge an IOPS zu bestimmen, die meine Anwendung ausführt. iostat meldet dies als tps. Mit KB/t können Sie feststellen, ob der Übertragungsbetrag unter der Blockgröße von 256 KB liegt. Ich führe iostat mit einer Wartezeit von einer Sekunde aus, d. H. Iostat -w 1.

0
Prof Mo