Cette page a été traduite automatiquement. Lisez l'original en anglais. English

Bibliothèque IBSurgeon

Firebird Performance Newsletter : Numéro 1

Nous avons décidé de lancer une lettre d’information plus ou moins régulière sur les performances de Firebird, consacrée aux tests de performance, astuces, conseils, améliorations de configuration, etc.

Dans ce premier numéro, vous trouverez :

Firebird 4 vs Firebird 3 : Bonne nouvelle, tout le monde !

Depuis 2019, date à laquelle nous avons publié la première collection de résultats du test simple INSERT/UPDATE/DELETE, de nombreuses personnes nous ont envoyé les résultats de leurs serveurs Firebird, et nous les avons ajoutés au tableur et au graphique correspondant.

Ce test est un outil simple mais puissant pour mesurer et comparer les performances de différentes configurations matériel+Firebird, afin de confirmer ou d’infirmer rapidement un problème matériel ou de configuration.

Récemment, nous avons utilisé ce test pour comparer les performances INSERT/UPDATE/DELETE de Firebird 4.0 (version 4.0.0.2394, quelques builds avant la sortie) et de 3.0 (version 3.0.8.33426, snapshot, pré-version de la prochaine 3.0.8, stable comme une version mineure, selon les auto-tests Firebird).

L’environnement de test était un Intel i3-10100F 3.60GHz avec un SSD Samsung SSD 870QVO et un disque RAM (qSoft), avec différentes tailles de RAM (16, 32, 64) et différentes valeurs de Page Buffers.

Voici le graphique, et voici le tableur XLS avec les résultats.

Comme vous pouvez le voir, dans les mêmes conditions et avec la même configuration, Firebird 4 est environ 10% plus rapide que la 3.0.8 sur les opérations d’écriture. C’est certainement une bonne nouvelle et un signe de plus qu’il est temps de s’intéresser de plus près à la prochaine version et de commencer les préparatifs de migration.

Bien sûr, la meilleure approche consiste à exécuter le même test sur votre propre serveur et à constater l’amélioration réelle par vous-même.

Voir comment faire »

Choisir la meilleure instance AWS EC2 pour des performances d’écriture Firebird maximales

De plus en plus d’entreprises envisagent de « passer au cloud », et Amazon Web Service Elastic Cloud est l’une des « destinations cloud » préférées.

Cependant, AWS propose de nombreux types d’instances différents ; comment choisir la meilleure ? Bien sûr, en faisant des tests !

Nous avons effectué les tests simples INSERT/UPDATE/DELETE sur 20 types d’instances et avons trouvé plusieurs très bonnes options pour Firebird.

Veuillez noter - tous les prix dans les calculs et graphiques ci-dessous concernent la région Francfort d’AWS EC2, ils sont repris tels quels de aws.amazon.com, sans aucune remise, ils peuvent être soumis à des taxes supplémentaires, et ils peuvent changer avec le temps - veuillez donc ne pas considérer les prix ci-dessous comme définitifs ou comme un guide d’achat exact.

Voici le graphique global et le tableur XLS avec les résultats :

Pour simplifier, nous avons créé la colonne Opérations, qui est essentiellement la somme des Insertions+Mises à jour+Suppressions, et l’avons utilisée comme métrique unifiée de performance d’écriture :

Comme vous pouvez le voir, les 3 types d’instances suivants sont en tête en termes de performances (du point de vue des opérations d’écriture Firebird) :

Instance Coût horaire pour Linux Opérations/seconde

| z1d.xlarge | USD$0.45 | 45834 | | m5dn.2xlarge | USD$0.648 | 45198 | | m5d.2xlarge | USD$0.544 | 44150 |

Il est intéressant de noter que les leaders ne sont pas les types d’instances les plus chers ! Bien sûr, il faut garder à l’esprit que le test est mono-thread (et ne bénéficie pas du nombre de cœurs) et ne nécessite pas une grande quantité de RAM (car la base de données ne fait que 3,6 Go), mais pour les applications qui doivent traiter rapidement des pics d’opérations d’écriture, ces instances semblent vraiment optimales.

Malgré le fait que ces types d’instances ne soient pas les plus chers (parmi ceux testés), ils restent assez chers pour qu’on réfléchisse à deux fois au budget, et puisque l’un des avantages annoncés du cloud est la flexibilité, il est logique de commencer avec des types d’instances VM moins chers, qui pourraient être suffisants pour servir notre base de données Firebird, n’est-ce pas ?

Pour trouver les types d’instances au meilleur rapport coût/performance, nous avons créé une autre colonne dans notre tableur : « Opérations pour 1 USD ».

Cela signifie exactement ce que cela signifie - combien d’opérations d’écriture vous pouvez acheter pour 1 USD.

La formule est la suivante :

Opérations_Par_Seconde * 3600 secondes par heure / Prix par heure

Comme vous pouvez le voir, de ce point de vue, les leaders sont différents :

Instance Prix horaire Linux Opérations pour 1 USD Opérations par seconde
c5d.xlarge USD$0,222 579062087 35709
c5ad.xlarge USD$0,2 565024995 31390
m5dn.xlarge USD$0,324 446037216 40143

Le plus intéressant est le n°3, m5dn.xlarge avec une performance de pointe d’environ 40K/seconde - assez proche du leader de performance z1d.xlarge avec 45834 opérations/seconde, mais nettement moins cher.

En général, notre expérience avec AWS EC2 montre que c’est un environnement stable et mature, avec de nombreuses fonctionnalités de sécurité/sauvegarde/haute disponibilité/etc., mais, comme toute plateforme complexe, il nécessite de l’expérience (ou une expertise externe) pour faire le bon choix et éviter des factures exorbitantes pour des applications avec une charge peu fantastique.

Résultats récents du test INSERT/UPDATE/DELETE

Comme vous pouvez le voir, ce test simple peut être utile non seulement comme comparaison entre matériel et Firebird, mais peut aussi vous faire économiser quelques dollars.

Nous avons publié un graphique avec les résultats récemment collectés et un tableur XLS pour jouer avec, afin que vous puissiez vérifier par vous-même ici.

Voici 3 conclusions évidentes :

  1. Les disques NVME sont vraiment excellents ; si vous avez besoin d’un serveur Firebird puissant, achetez du NVME pour les bases de données.
  2. La fréquence élevée du CPU est très importante pour les hautes performances des bases de données Firebird. Souvent, les fournisseurs vous poussent à acheter des processeurs multi-cœurs avec une fréquence plus basse (<3Ghz), mais cela peut ne pas être la meilleure option pour Firebird ; moins de cœurs avec une fréquence plus élevée peuvent donner un meilleur résultat.
  3. Si votre profil de charge de base de données est fortement orienté écriture, essayez de réduire les Page Buffers : faites des expériences avec DefaultDbCachePages comme 50K, 100K, 250K, etc. Ce serait génial si vous partagiez les résultats avec nous !

N’hésitez pas à explorer les résultats des tests, à poser des questions ou à envoyer des suggestions.

Dans les prochains numéros de la « Lettre d’information sur les performances Firebird »

Dans le 2e numéro, nous montrerons comment configurer plusieurs instances SuperClassic pour servir une seule base de données (entre autres, cela peut être utile pour répartir la charge entre plusieurs ports réseau). Les projets pour les prochains numéros sont ambitieux : erreurs de configuration, tests de bases de données chiffrées, comparaison avancée des performances de Firebird 4 avec Firebird 3, optimisation des index, etc.

Si vous êtes intéressé et souhaitez recevoir des notifications sur les nouveaux numéros, rejoignez-nous sur le Canal Telegram FirebirdSQL.

Contactez-nous

Veuillez nous contacter pour toute question ou suggestion : Alexey Kovyazin : [email protected].