Leistungsüberprüfung von PostgreSQL 10.5 in den neuesten Yandex.Cloud-Clouddiensten

Erst neulich eröffnete Yandex Beta-Benutzern den Zugang zu seinem neuen Dienst - Yandex . Cloud . Es stellte sich heraus, dass diese Veranstaltung mit der Notwendigkeit zusammenfiel, eine Cloud-Plattform für eines unserer internen Projekte auszuwählen, und ich beschloss, die Leistung von Yandex-Lösungen sofort zu testen.

Für den Test habe ich PostgreSQL und die gute alte pgbench genommen. Die Wahl fiel auf das DBMS, da es interessant war, die Leistung nicht nur virtueller Maschinen, sondern auch verwalteter Datenbankdienste zu testen und zu vergleichen.

Haftungsausschluss: Der Autor ist weder ein professioneller Administrator noch ein DBA oder ein Spezialist für die Anpassung von Cloud-Lösungen. Die Tests wurden ausschließlich zu persönlichen Zwecken durchgeführt und geben nicht vor, objektiv zu sein. Nehmen Sie daher den Artikel „wie er ist“. Es wird keine eingehende Analyse geben, aber es wird einen ausdrücklichen Vergleich mit Selectel VPC (auf verschiedenen Festplatten) und verschiedenen AWS EC2 / RDS-Konfigurationen hinsichtlich Leistung und Kosten der Lösungen geben. Vielleicht spart dies jemandem ein wenig Zeit.

Details Yandex.Cloud vs Selectel VPC vs AWS unter Kat.-Nr.

Die Struktur der Yandex.Cloud-Dienste


Die Struktur der Yandex.Cloud-Ressourcen ist für solche Dienste gleich:

Ressourcenkontingente (global)
Katalog (Projekt)

- Compute Cloud (virtuelle Maschinen und Laufwerke)
- Verwaltete Datenbanken (Datenbankcluster, in denen Sie Clickhouse-, MongoDB- und PostgreSQL-Datenbanken ausführen können)
- Objektspeicher (Cloud-Speicher)
- Virtuelle private Cloud (Cloud-Netzwerke)
- API

Ich sehe keinen Grund darin, die Benutzeroberfläche im Detail zu beschreiben, zumal die Dokumentation gemeinfrei ist und vieles daraus hervorgeht.

Konfigurationen vergleichen


Die folgenden Ressourcen wurden für alle virtuellen Instanzen im Test zugewiesen:

vCPU : 8 Kerne
RAM : 32 GB
Datenträger : SSD (bestimmte Klasse - siehe Testinstanzen).
Betriebssystem : CentOS 7 minimal

Für verwaltete Datenbankdienste wurde die nächstmögliche Konfiguration angefordert (Yandex und AWS haben nur Konfigurationen mit 8CPU / 32RAM).

Die getestete Version von Postgres ist 10.5. Es wurde auf virtuellen Maschinen aus dem Paket postgresql10-server , und auf verwalteten Clustern wurde diese Version aus der Liste ausgewählt.

Testmethode


  1. postgresql10-server und postgresql10-server Pakete wurden auf einem sauberen Betriebssystem installiert
  2. Die Datenbank für den Benchmark wurde mit den folgenden Parametern initialisiert: pgbench -i -s 100
  3. Dreimal wurde der Benchmark mit folgenden Parametern ausgeführt: pgbench -c 10 -T 60
  4. Das Dienstprogramm pgbench wurde auf derselben virtuellen Maschine gestartet, auf der das DBMS installiert wurde, und für verwaltete Cluster auf einer virtuellen Maschine in derselben Cloud.
  5. Das beste Ergebnis der drei wurde in die Ergebnistabelle eingetragen.

Testergebnisse


Alle Ergebnisse des Express-Tests in einer Tabelle (Grafik unten):
RessourceTpsPreis
AWS EC2 m5.2xlarge2822343
AWS EC2 m5d.2xlarge2752403
AWS EC2 t3.2xlarge2636290
AWS EC2 t2.2xlarge2259320
AWS EC2 m4.2xlarge2187358
Selectel VPC (schnelle SSD)1524186
Yandex Cloud Compute-Instanz1309155
Yandex Cloud Managed Database1226234
AWS RDS db.m4.2xlarge (3000 IOPS)12001007
AWS RDS db.t2.2xlarge (3000 IOPS)1127862
AWS RDS db.t2.2xlarge (1000 IOPS)970625
AWS RDS db.m4.2xlarge (1000 IOPS)885769
Selectel VPC (Universal SSD)247164

In der Spalte Preis wird der geschätzte Preis der getesteten Lösung pro Monat in USD einschließlich Speicherplatz bei 100 GB angezeigt. Für Amazon RDS, das stundenweise berechnet wird, wurden die Kosten einer Stunde mit 720 multipliziert. Die Preise für die Berechnung wurden aus folgenden Quellen entnommen:

- für Yandex Cloud Managed Database
- für Yandex Cloud Compute Instance
- für Selectel VPC-Instanz

Testergebnisse in grafischer Form:

Bild

Schlussfolgerungen


Die Schlussfolgerungen sind im Allgemeinen ziemlich offensichtlich: Es ist besser, Universal SSD nicht von Selectel zu nehmen, um ein DBMS zu hosten :)

Aber im Ernst, es war interessant für mich, hauptsächlich Selectel und Yandex zu vergleichen. Wie sich herausstellte, gehen beide Lösungen in Bezug auf Leistung und Kosten fast gegeneinander an. Darüber hinaus waren die Kosten angenehm überrascht: Die Preise der getesteten Konfigurationen waren durchaus erschwinglich.

Es ist voraussichtlich teurer, eine ähnliche Konfiguration in der AWS-Cloud zu verwenden (obwohl ich einen größeren Preisunterschied erwartet habe), aber keiner der russischen Anbieter konnte hinsichtlich der Leistung mit AWS EC2 mithalten. Die Ausnahme ist RDS, das ich nicht verstehe, was selbst das Hinzufügen von bereitgestelltem IOPS nicht hilft - es funktioniert immer noch langsam, aber es kostet viel, sehr teuer.

Nur ein paar Worte zu Yandex: Im Allgemeinen habe ich lange Zeit das Erscheinen eines solchen Dienstes von ihnen erwartet. Es war offensichtlich, dass dies nur eine Frage der Zeit war. Es ist immer noch offensichtlich, dass es feucht ist (ich hoffe, dies gilt nur für die Web-Schnauze und nicht für die gesamte Infrastruktur), da immer noch viele Fehler und Störungen im Inneren vorhanden sind. Ich musste eng mit denen reden. Unterstützung, um zu verstehen, ob dies ein Fehler ist oder etwas, das ich nicht verstehe. Aber ich bin sicher, all dies wird schnell behoben und eine weitere würdige Alternative wird auf dem russischen IaaS-Markt erscheinen.

Source: https://habr.com/ru/post/de428151/


All Articles