Examen des performances de PostgreSQL 10.5 dans les derniers services cloud Yandex.Cloud

L'autre jour, Yandex a ouvert l'accès des utilisateurs bêta à son nouveau service - Yandex . Cloud . Il s'est avéré que cet événement coïncidait avec la nécessité de choisir une plateforme cloud pour l'un de nos projets internes, et j'ai décidé de tester immédiatement les performances des solutions Yandex.

Pour le test, j'ai pris PostgreSQL et le bon vieux pgbench. Le choix s'est porté sur le SGBD car il était intéressant de tester et de comparer les performances non seulement des machines virtuelles, mais aussi des services de bases de données gérées.

Avertissement: L'auteur n'est ni un administrateur professionnel, ni un DBA, ni un spécialiste de la personnalisation des solutions cloud. Les tests ont été effectués uniquement à des fins personnelles et ne prétendent pas être objectifs, par conséquent, veuillez prendre l'article «tel quel». Il n'y aura pas d'analyse approfondie à l'intérieur, mais il y aura une comparaison expresse avec Selectel VPC (sur différents disques) et diverses configurations AWS EC2 / RDS en termes de performances et de coût des solutions. Cela fera peut-être gagner du temps à quelqu'un.

Détails Yandex.Cloud vs Selectel VPC vs AWS sous cat.

La structure des services Yandex.Cloud


La structure des ressources Yandex.Cloud est commune pour ces services:

Quotas de ressources (global)
Catalogue (projet)

- Compute Cloud (machines virtuelles et lecteurs)
- Bases de données gérées (clusters de bases de données, vous pouvez exécuter les bases de données Clickhouse, MongoDB et PostgreSQL)
- Stockage d'objets (stockage cloud)
- Cloud privé virtuel (réseaux cloud)
- API

Je ne vois pas l'intérêt de décrire l'interface en détail, d'autant plus que la documentation est du domaine public et que beaucoup de choses en ressortent clairement.

Comparer les configurations


Les ressources suivantes ont été allouées à toutes les instances virtuelles du test:

vCPU : 8 cœurs
RAM : 32 Go
Disque : SSD (classe spécifique - voir instances de test).
Système d' exploitation : CentOS 7 minimal

Pour les services de base de données gérés, la configuration la plus proche possible a été demandée (Yandex et AWS ont juste des configurations avec 8CPU / 32RAM).

La version testée de Postgres est 10.5. Il a été postgresql10-server sur les machines virtuelles du package postgresql10-server , et sur les clusters gérés, cette version a été sélectionnée dans la liste.

Méthodologie de test


  1. postgresql10-server et postgresql10 packages ont été installés sur un système d'exploitation propre
  2. La base de données du benchmark a été initialisée avec les paramètres: pgbench -i -s 100
  3. Le benchmark a été exécuté trois fois avec des paramètres: pgbench -c 10 -T 60
  4. L'utilitaire pgbench été lancé sur la même machine virtuelle sur laquelle le SGBD a été installé, et pour les clusters gérés, sur une machine virtuelle dans le même cloud.
  5. Le meilleur résultat des trois a été inscrit dans le tableau des résultats.

Résultats des tests


Tous les résultats du test express dans un tableau (graphiques ci-dessous):
RessourceTpsPrix
AWS EC2 m5.2xlarge2822343
AWS EC2 m5d.2xlarge2752403
AWS EC2 t3.2xlarge2636290
AWS EC2 t2.2xlarge2259320
AWS EC2 m4.2xlarge2187358
Selectel VPC (SSD rapide)1524186
Instance de calcul cloud Yandex1309155
Base de données gérée par Yandex Cloud1226234
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 (SSD universel)247164

La colonne Prix affiche le prix estimé de la solution testée par mois en USD, y compris le stockage à 100 Go. Pour Amazon RDS, qui est facturé à l'heure, le coût d'une heure a été multiplié par 720. Les prix pour le calcul ont été tirés des sources suivantes:

- pour Yandex Cloud Managed Database
- pour l'instance Yandex Cloud Compute
- pour l'instance Selectel VPC

Résultats des tests sous forme de graphique:

image

Conclusions


Les conclusions, en général, sont assez évidentes: il vaut mieux ne pas prendre Universal SSD de Selectel pour héberger un SGBD :)

Mais sérieusement, il était intéressant pour moi de comparer principalement Selectel et Yandex. Il s'est avéré que les deux solutions vont presque de pair en termes de performances et de coûts. De plus, le coût a agréablement surpris: les prix des configurations testées étaient assez abordables.

Il est probablement plus coûteux d'utiliser une configuration similaire dans le cloud AWS (bien que je m'attendais à une plus grande différence de prix), mais aucun des fournisseurs russes n'a pu suivre AWS EC2 en termes de performances. L'exception est le RDS que je ne comprends pas, que même l'ajout d'IOPS provisionnés n'aide pas - cela fonctionne toujours lentement, mais cela coûte beaucoup, très cher.

Juste quelques mots sur Yandex: en général, je m'attendais à l'apparition d'un tel service depuis longtemps, il était évident que ce n'était qu'une question de temps. Il est toujours évident qu'il est humide (j'espère que cela ne s'applique qu'au web-museau, et non à l'infrastructure dans son ensemble), car il y a encore de nombreux bugs et bugs à l'intérieur. Je devais en parler étroitement. support pour comprendre s'il s'agit d'un bug ou de quelque chose que je ne comprends pas. Mais, je suis sûr, tout cela sera rapidement débogué et une autre alternative valable apparaîtra sur le marché russe de l'IaaS.

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


All Articles