Introduction

L'évolutivité de Postgres est une question fréquente lors de la construction de systèmes de workflow durables. Dans cet article, nous allons présenter les résultats d'un benchmark sur la scalabilité de Postgres.

Contexte Technique

Les tests ont été effectués sur un serveur Postgres unique, avec un focus sur les performances des écritures, qui constituent le goulet d'étranglement dans l'exécution des workflows. Les expériences ont été menées sur une instance AWS RDS db.m7i.24xlarge avec 96 vCPUs, 384 Go de RAM et 120 000 IOPS sur un volume io2.

Les résultats montrent que Postgres peut supporter un débit soutenu de 144 000 écritures par seconde, soit 12 milliards d'écritures par jour. Cela équivaut à 43 000 workflows par seconde, ce qui est plus que suffisant pour la plupart des cas d'utilisation.

Analyse et Implications

L'analyse des résultats montre que le goulet d'étranglement se situe dans le journal des écritures (WAL) de Postgres, qui doit être vidangé sur disque pour chaque écriture. Cela signifie que les performances de Postgres sont limitées par la vitesse à laquelle les transactions d'écriture peuvent être validées.

Les tests ont également évalué les performances de workflows durables avec et sans files d'attente. Les résultats montrent que les workflows durables peuvent être traités à un débit de 43 000 par seconde, tandis que les files d'attente peuvent traiter 12 100 workflows par seconde.

Perspective

Ces résultats montrent que Postgres est capable de gérer des charges de travail importantes, mais qu'il est important de comprendre les limites de son évolutivité. Les futurs tests devraient se concentrer sur l'optimisation des performances de Postgres et l'utilisation de techniques de partitionnement pour améliorer la scalabilité.