Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le cloud computing a considérablement remodelé le paysage d’hébergement de base de données. Elle permet aux équipes d’accéder à l’extensibilité, à la résilience, à la portée globale et aux fonctionnalités qui étaient auparavant inobtenables. Au lieu d’entraîner des coûts et des frais considérables en planifiant la plus grande charge de travail possible (et porter ce coût dès le premier jour), les équipes peuvent désormais optimiser l’échelle précise nécessaire, au moment voulu, et s’ajuster à mesure que leurs demandes changent.
Présentation
La possibilité de choisir l’équilibre approprié des ressources est particulièrement utile pour les déploiements de bases de données PostgreSQL. Les charges de travail de base de données PostgreSQL peuvent démarrer rapidement, croître rapidement, augmenter de façon saisonnière, passer de la lecture intensive à l’écriture lourde ou évoluer des charges de travail transactionnelles en systèmes opérationnels et analytiques hybrides en temps réel. Azure Database pour PostgreSQL garantit que vos solutions atteignent vos cibles en offrant un large éventail de choix entre le calcul, le stockage, la disponibilité, la réplication, la sécurité, la sauvegarde et la gestion opérationnelle.
Mais avec toute cette puissance vient la responsabilité, en particulier lors de la planification de vos déploiements. Pour obtenir les meilleures performances possibles, vos décisions de déploiement doivent correspondre aux exigences globales de votre charge de travail.
Un déploiement réussi Azure Database pour PostgreSQL n'est pas seulement une question de choisir « les cœurs et la mémoire dont nous avons besoin ». Au lieu de cela, les performances opérationnelles maximales proviennent de la compréhension des comportements de votre application, des comportements du client, du calcul, du stockage et des caractéristiques de croissance de la base de données, et de la façon dont ces derniers se croisent et interagissent.
La meilleure architecture est celle où ces éléments sont intentionnellement alignés.
La planification des performances cloud est une responsabilité partagée
L’un des principaux avantages de la migration vers une plateforme cloud approuvée est le modèle de responsabilité partagée. Microsoft fournit l’infrastructure mondiale, les services managés, l’innovation matérielle, la fiabilité, la sécurité et l’ingénierie opérationnelle. Vos équipes apportent l’expertise spécifique du contexte d’application : critique métier, comportement de la charge de travail, conception du modèle de données, profil de trafic réseau, attentes de croissance, objectifs de récupération et exigences d’expérience utilisateur final.
Les résultats les plus forts surviennent lorsque ces deux forces sont unifiées.
Azure fournit une infrastructure Postgres hautement évolutive, mais votre équipe doit apporter des insights dans ces domaines :
- Combien d’utilisateurs simultanés sont attendus pendant les périodes normales et de pointe ?
- Les opérations les plus importantes sont-elles à prédominance de lecture, d'écriture ou mixtes ?
- Le pic de demande est-il atteint pendant la fin du mois, le trimestre, les jours fériés, les lancements ou les fenêtres de création de rapports ?
- Quelle est la vitesse de croissance du jeu de données ?
- Quelles opérations respectent la latence ?
- Quelles requêtes ou travaux peuvent tolérer des runtimes plus longs ?
- La charge de travail est-elle principalement OLTP, OLAP ou hybride ?
- Les clients se trouvent-ils près de la région de base de données, globalement distribuées ou concentrées dans une zone géographique ?
Capturez ces détails avant le déploiement, et non après un incident de production. Les déploiements cloud facilitent la mise à l’échelle, mais les conceptions les plus performantes et les plus rentables commencent toujours par des exigences saines et une planification appropriée. Dans la plupart des cas, ces questions peuvent être distillées jusqu’aux relations entre les connexions simultanées, le nombre maximal d’E/S par seconde et le débit requis.
Les performances ont plusieurs couches
Les performances de la base de données sont rarement déterminées par un paramètre unique. Les expériences de déploiement réussies dépendent de plusieurs couches qui fonctionnent ensemble :
-
Performances de la couche Application.
Cette couche inclut le code d’application, les modèles de requête, la couverture d’index, l’utilisation du déclencheur, le partitionnement des données, la gestion des connexions, la mise en cache, la logique de nouvelle tentative, le regroupement, le comportement ORM, la conception des transactions et le comportement du travail en arrière-plan. -
Performances des couches client et réseau.
Cette couche inclut l'emplacement des clients, la façon dont ils se connectent, si les requêtes traversent les régions et zones de disponibilité, la latence réseau, le coût TLS, l'activité de connexion ainsi que l'efficacité de l'application dans l'utilisation du regroupement de connexions. -
Performances de la plateforme de base de données.
Cette couche inclut la configuration du déploiement Postgres, la taille de calcul, la mémoire, le processeur, le type de stockage, la taille de stockage, les IOPS de stockage, le débit de stockage, la haute disponibilité, les réplicas et les opérations de maintenance.
Cet article se concentre principalement sur la troisième couche : planification du déploiement de base de données Postgres Azure afin que les choix de calcul et de stockage prennent en charge le profil de performances requis.
Azure Database pour PostgreSQL offre une flexibilité, mais la planification est essentielle
Azure Database pour PostgreSQL Serveur flexible fournit un large éventail d’options de déploiement, notamment :
| Zone de déploiement | Choix disponibles |
|---|---|
| Compute | Niveaux de calcul, générations de machines virtuelles, configurations à usage général et configurations mémoire optimisées. |
| Storage | Azure SSD Premium v1, SSD Premium v2, mise à l’échelle du stockage, configuration IOPS et configuration du débit. |
| Availability | Haute disponibilité, sauvegarde et restauration et sauvegardes géoredondantes dans les configurations prises en charge. |
| Replication | Lit les réplicas et les géoréplicas. |
| Security | Clés gérées par le client et intégration de la sécurité d’entreprise. |
Cette flexibilité est puissante, car différentes charges de travail nécessitent différentes fonctionnalités. Un système transactionnel lourd en écriture n’a pas besoin du même profil qu’un système lourd de rapports. Une application SaaS globale n’a pas besoin de la même conception qu’une application régionale interne. Une base de données croissant de 5 % par an n’a pas besoin du même plan de stockage qu’une base de données croissant de 200 % mois après mois.
L’objectif de planification est d’identifier les besoins de votre profil de performances de charge de travail, puis d’implémenter les choix appropriés entre les options de calcul et de stockage pour fournir correctement vos solutions de bout en bout.
Commencer par le profil de charge de travail
Avant de choisir le calcul ou le stockage, définissez la charge de travail. Les dimensions de planification utiles sont les suivantes :
| Zone de planification | Questions à répondre |
|---|---|
| Géographie | Où se trouvent les utilisateurs, les applications, les réplicas et les intégrations ? |
| Concurrency | Combien de connexions simultanées et de requêtes actives sont attendues ? |
| Taille des données | Quelle est la taille actuelle de la base de données et quel est le taux de croissance attendu ? |
| Taux de modification | Quelle est la rapidité avec laquelle les données augmentent-elles au fil du mois ? Combien de journaux d’écriture avant (WAL) est généré ? |
| Type de charge de travail | Le système est-il orienté OLTP, OLAP, rapports, lots ou hybride ? |
| Mélange lecture/écriture | Quel pourcentage des opérations sont des lectures et des écritures ? |
| Comportement de pointe | Existe-t-il des cycles d’activité prévisibles, des pics saisonniers ou des fenêtres batch ? |
| Sensibilité de la latence | Quelles transactions sont à la fois destinées aux utilisateurs et critiques en termes de latence ? |
| Besoins en débit | Existe-t-il des analyses de données volumineuses, des exportations, des importations ou des processus d’extraction, de transformation et de chargement (ETL) ? |
| Attentes concernant la mise à l'échelle | La charge de travail nécessite-t-elle des rafales temporaires ou une performance élevée soutenue ? |
L’objectif n’est pas de prédire parfaitement l’avenir. L’objectif est d’éviter de concevoir à l'aveugle.
Comprendre les trois concepts de performances de stockage principaux
Azure planification des performances de stockage est généralement liée à trois concepts connexes mais distincts : IOPS, débit et latence. Ces facteurs sont essentiels pour la planification des performances des applications.
IOPS
Les IOPS signifient des opérations d’entrée/sortie par seconde. Elle mesure le nombre d’opérations de lecture ou d’écriture que la base de données peut envoyer au stockage chaque seconde.
Les IOPS sont particulièrement importantes pour les charges de travail OLTP. Ces systèmes effectuent souvent de nombreuses petites lectures et écritures aléatoires, telles que des insertions, des mises à jour, des recherches d’index, des lectures de points et des transactions courtes. Une charge de travail transactionnelle avec des milliers d’utilisateurs simultanés peut avoir besoin d’IOPS élevées même si chaque opération individuelle est petite.
Les scénarios courants sensibles aux IOPS sont les suivants :
- Traitement des commandes à volume élevé
- Mises à jour de profil utilisateur
- Systèmes d’inventaire
- Ingestion d’événements
- Systèmes de paiement ou de facturation
- Applications SaaS hautement simultanées
Débit
Le débit, parfois appelé bande passante, mesure la quantité de données pouvant être lues ou écrites dans le stockage au fil du temps. Elle est exprimée en Mo/s.
Le débit est important lorsque les opérations déplacent de grandes quantités de données. Les requêtes analytiques, les sauvegardes, les restaurations, les travaux par lots, les builds d’index, les analyses de table et les flux de travail ETL peuvent nécessiter un débit élevé, même s’ils ne nécessitent pas les IOPS les plus élevées.
Les scénarios courants sensibles au débit sont les suivants :
- Requêtes de création de rapports sur des tables volumineuses
- Importations ou exportations en bloc
- Analyses de type entrepôt de données
- Opérations de sauvegarde et de restauration
- Opérations de création ou de reconstruction d’index volumineuses
- Traitement par lots
Latency
La latence est le temps nécessaire à la fin d’une requête d’E/S unique. La faible latence est essentielle pour les opérations de base de données orientées utilisateur, en particulier lorsque de nombreuses petites opérations sont chaînées ensemble dans une transaction.
Un système peut avoir des E/S par seconde théoriques élevées, mais se sentir toujours lent si la latence est élevée. Pour les charges de travail Postgres, la latence de stockage peut affecter directement les temps de réponse des requêtes, le comportement de validation des transactions, le comportement de point de contrôle et la réactivité globale de l’application.
Note
Les disques SSD Premium v1 sont conçus pour les latences de millisecondes à un chiffre pour la plupart des opérations d’E/S, et notamment la mise en cache des disques peut réduire davantage la latence de lecture pour les configurations de disque de moins de 4 To. Ssd Premium v2 et Ultra Disk offrent une latence de sous-milliseconde.
Les IOPS, le débit et la latence doivent être pris en compte ensemble
Les IOPS et le débit sont connectés. Une charge de travail qui génère plusieurs petites opérations de 8 KiB peut entraîner un nombre élevé d'IOPS sans un débit élevé. Une charge de travail qui émet de grandes opérations de plusieurs mégaoctets peut entraîner un débit élevé avec des IOPS plus faibles.
Un moyen simple de réfléchir à ce sujet :
E/S par seconde x taille d’E/S = Débit
Pour Postgres, l’implication pratique est que la planification du stockage de charge de travail doit être basée sur le comportement observé ou estimé de la charge de travail, et non sur la taille de la base de données seule. Par exemple:
- Un système OLTP à haute concurrence peut nécessiter davantage d’E/S par seconde et une latence inférieure.
- Un système lourd de rapports peut nécessiter davantage de débit.
- Un système hybride peut avoir besoin des deux, en particulier pendant les cycles de pointe.
- Un système OLTP à haute concurrence peut nécessiter davantage d’E/S par seconde et une latence inférieure.
- Un système lourd de rapports peut nécessiter davantage de débit.
- Un système hybride peut avoir besoin des deux, en particulier pendant les cycles de pointe.
Vos choix de déploiement affectent directement les performances du stockage
Une erreur courante consiste à définir votre stockage pour un numéro de performances cible sans prendre pleinement en compte si votre référence SKU de calcul sélectionnée peut générer les mêmes niveaux de performances.
La performance de stockage Azure a plusieurs considérations. Ces détails incluent :
- Ensemble de capacités de calcul (nombre maximal d’E/S par seconde de calcul et limites de débit).
- Génération de stockage (SSD v1, SSD v2, Disque Ultra).
- La taille du disque de stockage (les disques SSD v1 inférieurs à 4 096 Go incluent la mise en cache de l’hôte, ce qui permet des rafales d'IOPS supérieures aux baselines standard).
- Capacité de stockage en E/S par seconde.
- Capacité de débit de stockage.
En pratique : votre plafond de performances efficace est votre limite la plus faible pertinente dans la chaîne.
Si la configuration de stockage peut fournir 80 000 IOPS, mais que la référence SKU de calcul ne peut générer que 20 000 IOPS, le déploiement ne fournit pas 80 000 IOPS. À l'inverse, si la génération de machine virtuelle prend en charge des IOPS élevés, mais que le niveau de stockage sélectionné est plafonné à un niveau inférieur, le niveau de stockage devient la limite.
La planification du calcul et du stockage doit se produire ensemble.
SSD Premium v1 : performances de référence fortes avec un comportement de mise en cache important
SSD Premium v1 est un choix courant pour les charges de travail de production Azure Postgres nécessitant des performances prévisibles et approvisionnées. Azure Postgres v1 stockage SSD prend en charge jusqu’à 32 To de stockage, 20 000 IOPS et 900 Mo/s.
Ssd Premium v1 fonctionne bien pour les charges de travail qui tirent parti de la mise en cache de l’hôte. Azure Postgres prend en charge la mise en cache de l’hôte pour les tailles de disque SSD v1 inférieures à 4 096 Go. Tout disque approvisionné jusqu’à 4 095 Go peut tirer parti de la mise en cache de l’hôte. Une fois le stockage approvisionné à 4 096 Go ou plus, la mise en cache de l’hôte n’est plus prise en charge. Cette limite est importante. Pour les déploiements SSD Premium v1 de moins de 4 To, la mise en cache peut améliorer les performances de lecture et réduire la latence de lecture. Cette mise en cache offre une excellente efficacité coût-performances pour des charges de travail majoritairement en lecture ou mixtes qui se situent en-dessous du seuil de mise en cache.
Pourquoi la limite de 4 To importe
Lorsqu’un déploiement SSD Premium v1 dépasse la plage prise en charge par la mise en cache, le profil de performances peut changer :
- Les lectures ne bénéficient plus du cache hôte.
- Les opérations de lecture supplémentaires proviennent directement du disque sous-jacent.
- Le nombre de lectures est pris en compte par rapport aux IOPS du disque et aux limites de bande passante.
- Les charges de travail de lecture sensibles à la latence peuvent voir un comportement différent.
- Une configuration qui était précédemment efficace peut nécessiter davantage d’E/S par seconde approvisionnées, plus de débit, de mise à l’échelle de calcul, de réglage des requêtes ou d’une autre option de stockage.
Dépasser 4 To n’est pas mal, mais vous devez le planifier.
Si vous prévoyez qu’une base de données augmente au-delà de 4 To, envisagez l’état futur pendant la conception de l’architecture. Une conception qui fonctionne correctement à 2 To avec la mise en cache peut avoir besoin d’un autre plan de performances à 5 To sans mise en cache.
Le burst permet de gérer les pics, mais ne remplace pas la capacité soutenue.
Les allocations de stockage en SSD Premium v1 de Azure Postgres de moins de 4 To prennent en charge les rafales de mise en cache de l’hôte, ce qui peut vous aider dans des scénarios tels que :
- Activité de démarrage
- Travaux par lots courts
- Pics de trafic
- Traitement de fin de mois
- Augmentations temporaires des charges de travail
Bien que le bursting soit utile, veillez à l'utiliser avec précaution. Le bursting peut absorber des pics temporaires, mais il ne doit pas être la base de la demande de charge de travail soutenue. Si la charge de travail s’exécute fréquemment au-dessus de la ligne de base, il est préférable de provisionner un niveau de performances plus élevé, d’ajuster les paramètres de performances du stockage, de mettre à l’échelle le calcul ou de redéfinir le modèle de charge de travail.
Une bonne question de planification est : Est-ce un pic temporaire, ou est-ce la nouvelle normale ?
Les pics temporaires peuvent être de bons candidats pour le bursting. Gérer la demande soutenue avec une planification délibérée de la capacité.
Ssd Premium v2 dissocie la capacité, les IOPS et le débit
Ssd Premium v2 modifie le modèle de planification en découplant la taille du disque, les IOPS et le débit. Azure Database pour PostgreSQL serveur flexible SSD Premium v2 prend en charge :
- Capacité comprise entre 32 Go et 64 To.
- Jusqu’à 80 000 IOPS.
- Jusqu’à 1 200 Mo/s de débit.
- Ajustements de capacité granulaires par incréments d'1 Go.
- Configuration flexible des E/S par seconde et du débit.
- Latence inférieure à premium SSD v1.
- Aucune mise en cache de l’hôte.
Ce changement est un changement majeur. Avec ssd Premium v1, les performances sont plus étroitement couplées à la taille du disque. Avec ssd Premium v2, vous pouvez configurer les performances plus directement autour des besoins de charge de travail.
Par exemple, une base de données volumineuse peut nécessiter des E/S par seconde élevées sans avoir besoin d’une grande quantité de stockage. Azure Postgres fournit des IOPS et un débit de référence sans frais supplémentaires, avec des IOPS supplémentaires et un débit supplémentaire disponibles moyennant des coûts additionnels. Offres SSD Premium v2 :
- Les disques jusqu’à 399 Go reçoivent une ligne de base de 3 000 IOPS et 125 Mo/s.
- Les disques de 400 Go ou plus reçoivent une ligne de base de 12 000 IOPS et 500 Mo/s.
- Les disques peuvent atteindre jusqu’à 80 000 IOPS lorsqu’ils sont dimensionnés à au moins 160 Go d’espace disponible.
- Le débit peut atteindre 1 200 Mo/s.
Ssd Premium v2 est souvent attrayant lorsque vous avez besoin d’un contrôle plus précis des coûts et des performances. Au lieu d'augmenter la capacité de stockage simplement pour améliorer les performances, vous pouvez allouer les performances de manière plus intentionnelle.
Disque Ultra (préversion) : classe de performances de disque haut de gamme Azure
Le disque Ultra est l’option disque le plus performant. Azure Disque Ultra offre des niveaux de performances jusqu’à :
- 400 000 IOPS
- Débit de 10 000 Mo/s
- Capacité de 64 To
- Cibles de conception de la latence submilliseconde
- Capacité, IOPS et débit configurables indépendamment
Le stockage Ultra Disk est conçu pour alimenter les charges de travail gourmandes en E/S pour les bases de données de niveau supérieur, les SAP HANA et les systèmes lourds de transactions. Cette nouvelle offre de stockage offre des performances de pointe pour vos charges de travail stratégiques. Toutefois, votre équipe doit prendre en compte certaines fonctionnalités de déploiement clés, les restrictions de disponibilité régionales et les options de configuration lors de la planification d’un déploiement :
- La croissance automatique du stockage n’est pas prise en charge pour les serveurs utilisant le disque Ultra
- Le chiffrement des données avec des clés gérées par le client n’est pas pris en charge pour les serveurs avec disque Ultra
- Les disques Ultra ne prennent pas en charge la mise en cache des disques
Il est important de comprendre les fonctionnalités de disque Ultra dans le cadre de l'ensemble des performances de stockage Azure. Toutefois, vous devez valider la disponibilité et la prise en charge du service pour votre charge de travail Postgres spécifique Azure. Vérifiez auprès de votre représentant Microsoft si la préversion du disque Ultra est disponible pour votre déploiement Azure Postgres.
Le point de vue pratique : Ultra Disk représente l’extrémité supérieure des performances de stockage Azure, mais votre conception Postgres de bout en bout doit inclure des combinaisons comparables prises en charge pour la référence SKU de calcul, la région et le niveau de mise en production sélectionnés.
La génération de machines virtuelles est importante : les plafonds de stockage de calcul V5 et V6 sont différents
La génération de calcul peut affecter matériellement les performances du stockage. Lorsque vous explorez les niveaux supérieurs de performance de stockage Azure, évitez le malentendu selon lequel « grande capacité de calcul » signifie automatiquement « stockage maximal ». Vous devez valider la SKU de calcul sélectionnée par rapport au niveau de stockage prévu. Nous allons illustrer ce point en tenant compte de deux générations de calcul de taille similaire, Ddsv5 et Ddsv6:
La série Ddsv5 prend en charge Stockage Premium (avec mise en cache), ssd Premium v2 et Disque Ultra au niveau de la famille de machines virtuelles. Toutefois, les limites de stockage distant agrégées de la machine virtuelle définissent toujours le plafond de ce que cette machine virtuelle peut conduire.
Ddsv5-series fournit des performances de stockage allant jusqu’à 80 000 IOPS et 2 600 Mo/s.
La Ddsv6série fournit une enveloppe de stockage supérieure, allant jusqu’à 400 000 IOPS et 12 000 Mo/s. Le calcul de la série V6 offre également une scalabilité supérieure à celle des générations précédentes, avec jusqu’à 192 processeurs virtuels et 768 Gio de mémoire.
La conception de PostgreSQL pour haute performance nécessite ce changement générationnel. Si votre architecture cible nécessite des performances de stockage élevées, le choix d’une génération de calcul avec un plafond de stockage agrégé inférieur peut empêcher le déploiement d’utiliser la fonctionnalité de stockage complète.
Exemple : pourquoi l’alignement de bout en bout est important
Considérez une charge de travail PostgreSQL avec un objectif de performance de stockage de 400 000 IOPS.
Au niveau de la couche disque, Azure Disque Ultra prend en charge jusqu’à 400 000 IOPS par disque. Ssd Premium v2 prend en charge jusqu’à 80 000 IOPS par disque, et des conceptions d’agrégation supérieures peuvent nécessiter plusieurs disques ou abstraction au niveau de la plateforme en fonction de la prise en charge du service.
Mais la fonctionnalité de stockage seule n’est pas suffisante.
Une configuration de série V5 peut avoir un plafond de stockage inférieur à la cible. Comme mentionné précédemment, les références SKU de la série V5 prennent en charge jusqu’à 260 000 IOPS pour le débit de disque distant SSD Premium. Dans ce cas, le choix de la couche de calcul de la série V5 pour cette cible devient le facteur de limitation avant qu’une cible d’IOPS de 400 000 soit atteinte.
En revanche, la documentation de la série Ddsv6 offre jusqu’à 400 000 IOPS et 12 000 Mo/s. Cela rend la série V6 et les générations plus récentes stratégiquement importantes pour les conceptions qui doivent aligner le calcul et le stockage autour des classes de performances de stockage les plus élevées.
La leçon est simple : la performance maximale de la base de données est une propriété de bout en bout, et non une propriété de stockage uniquement.
Planifier les cycles économiques, pas seulement l'état stationnaire
De nombreux systèmes n’ont pas de profil de performances unique. Ils en ont plusieurs.
| Trafic normal de la semaine. | Heures de pointe. |
| Traitement de fin de mois ou de trimestre. | Vacances ou demande saisonnière. |
| Événements de lancement de produit. | Fenêtres de rapport. |
| Fenêtres de maintenance. | Périodes d’ingestion d’Azure Batch |
| Scénarios de sauvegarde et de restauration. | Événements de récupération d’urgence. |
Une base de données dimensionnée pour l’utilisation moyenne peut lutter pendant les moments qui comptent le plus. À l’inverse, une base de données dimensionnée définitivement pour un pic d’une fois par mois peut être inutilement coûteuse.
La flexibilité d'Azure permet aux équipes de faire des choix plus nuancés. Par exemple:
- Utilisez SSD Premium v2 pour ajuster les E/S par seconde et le débit à mesure que les besoins de la charge de travail évoluent.
- Utilisez des répliques de lecture pour décharger les charges de travail intensives en lecture le cas échéant.
- Mettre à l’échelle le calcul pour les périodes de pointe connues.
- Paramétrez les requêtes, les index et le regroupement de connexions avant la mise à l’échelle de l’infrastructure.
- Utilisez l’observabilité pour déterminer si le goulot d’étranglement est le processeur, la mémoire, les IOPS, le débit, la contention de verrouillage, la pression de connexion ou la conception des requêtes.
Le meilleur déploiement n’est pas toujours le plus grand déploiement. Il s’agit de la conception qui correspond à la charge de travail et qui peut évoluer en toute sécurité.
L’observabilité fait partie de l’architecture
La planification des performances ne doit pas s’arrêter au déploiement. Les charges de travail Postgres changent au fil du temps. Les données augmentent, les modèles de requête changent, les nouvelles fonctionnalités sont lancées, le trafic client évolue, et les travaux opérationnels s'accumulent.
| Zone de surveillance | Signaux à passer en revue |
|---|---|
| Compute | Utilisation du processeur et pression de la mémoire. |
| Connections | Connexions actives, connexions inactives et comportement du pool de connexions. |
| Queries | Durée de la requête, modification du plan de requête et utilisation de l’index. |
| Storage | Pourcentage de stockage, latence de lecture, latence d’écriture, utilisation des IOPS et statistiques de débit. |
| Maintenance | Ballonnement de table, ballonnement d’index, caractéristiques WAL, calendriers de sauvegarde et calendriers de maintenance. |
| Replication | Décalage de la réplique, le cas échéant. |
La documentation d'Azure Database pour PostgreSQL met en évidence la surveillance de la consommation d’E/S via le portail Azure ou les métriques d'Azure CLI, notamment la limite de stockage, le pourcentage de stockage, le stockage utilisé et le pourcentage d’E/S.
Ces métriques permettent de répondre à la question opérationnelle la plus importante : quelle couche limite réellement les performances ?
Sans observabilité, les équipes risquent de faire évoluer le mauvais élément. Un problème de plan de requête peut ressembler à un problème de stockage. Les tempêtes de connexion peuvent ressembler à la pression du processeur. Un index manquant peut ressembler à un IOPS insuffisant. Un problème de placement de client régional peut ressembler à la latence de la base de données.
La supervision aide les équipes à apporter des modifications ciblées au lieu de deviner les coûts.
Liste de contrôle pratique de la planification
Avant de sélectionner la configuration de Azure Database pour PostgreSQL de production, capturez les informations suivantes.
| Category | Planification des entrées |
|---|---|
| Type de charge de travail | OLTP, OLAP, hybride, reporting, traitement par lots et ingestion. |
| Mélange lecture/écriture | Pourcentage de lectures, d’écritures, d’E/S aléatoires et d’E/S séquentielles. |
| Performances actuelles | IOPS de référence, débit, latence, processeur, mémoire et connexions. |
| Performances maximales | Exigences de charge de travail du 90e et du 99e percentile. |
| Taille des données | Taille actuelle, croissance attendue, utilisation d’objets volumineux et croissance de l’index. |
| Taux de croissance | Projections de stockage mensuelles et annuelles. |
| Concurrency | Sessions actives, sessions inactives et comportement du pool de connexions. |
| Cycles d’affaires | Pics quotidiens, hebdomadaires, mensuels, saisonniers et pilotés par le lancement. |
| Availability | Haute disponibilité, réplicas, récupération d’urgence, sauvegarde, restauration, objectif de point de récupération (RPO) et objectif de temps de récupération (RTO). |
| Choix de stockage | SSD Premium, SSD Premium v2, régions prises en charge et fonctionnalités prises en charge. |
| Impact sur la mise en cache | Indique si la mise en cache de l’hôte SSD Premium v1 s’applique à une capacité inférieure à 4 To. |
| Génération de calcul | Indique si la référence SKU sélectionnée peut piloter les IOPS et le débit requis. |
| Modèle de mise à l’échelle | Mise à l’échelle manuelle, mise à l’échelle planifiée, ajustement des performances et répliques. |
| Observabilité | Processus de révision des métriques, des alertes, des analyses des requêtes, et de l'évaluation de la charge de travail. |
Principes de conception recommandés
Utilisez les principes suivants lors de la planification des déploiements Azure Postgres pour optimiser les performances opérationnelles.
-
Taille adaptée à la configuration de la charge de travail, pas seulement à la taille des données.
Une base de données de 500 Go peut nécessiter plus d’E/S par seconde qu’une base de données de 5 To s’il est hautement transactionnel et sensible à la latence. La taille importe, mais le comportement de la charge de travail compte davantage. -
Validez le calcul et le stockage ensemble.
Ne choisissez pas le stockage uniquement en fonction des limites de disque. Vérifiez que la référence SKU de calcul sélectionnée peut soutenir les IOPS et le débit requis. -
Traitez la limite de mise en cache SSD Premium de 4 To comme un jalon de conception.
Les déploiements SSD Premium de moins de 4 To peuvent tirer parti de la mise en cache de l’hôte. À partir de 4 096 Go et au-delà, le caching hôte n’est pas pris en charge. Si la croissance dépasse ce seuil, planifiez le modèle de performances futur dès le début. -
Prenez en compte ssd Premium v2 pour un réglage flexible des performances.
Ssd Premium v2 permet un contrôle plus précis de la capacité, des IOPS et du débit. Il peut s’avérer très adapté lorsque les besoins en matière de performances ne correspondent pas correctement aux tailles de disque fixes. -
Utilisez le mode rafale pour les pics de demande, et non pour la demande soutenue.
Le bursting peut aider à des pics de courte durée, mais le bursting fréquent ou soutenu signifie généralement que la configuration de la base de référence doit être revisitée. -
Mettre en correspondance la génération à l’ambition.
Pour des objectifs de performances haut de gamme, les générations de calcul plus récentes telles que les séries v6 peuvent exposer des limites de stockage à distance agrégées supérieures à celles des générations à usage général antérieures. Si la cible est une architecture de classe IOPS de 400 000, sélectionnez la génération de calcul en conséquence. -
Mesure avant et après les modifications.
La mise à l’échelle est plus facile dans le cloud, mais la mesure est ce qui rend la mise à l’échelle efficace. Capturez les métriques de base, de pointe et de post-modification afin que les décisions relatives aux performances soient basées sur des preuves.
Benchmark réel : comparer les configurations de stockage sous charge
Les principes décrits dans cet article ne sont pas théoriques. Pour montrer comment le calcul, le stockage et la charge de travail interagissent en pratique, cette section récapitule les pgbench benchmarks qui comparent les configurations de stockage et les niveaux de calcul dans des conditions contrôlées et mesurées.
Configuration et méthodologie de benchmark
Les benchmarks utilisent pgbench, l’outil de benchmark PostgreSQL standard, pour simuler une charge de travail transactionnelle sur cinq configurations de stockage et de calcul différentes. Le test commence par 500 connexions simultanées et augmente jusqu’à 750 connexions simultanées après une période initiale, conservant cette charge de connexion élevée pour le reste de la fenêtre de test. Ce modèle d’accélération simule le nombre d’applications réelles qui augmentent la charge au fil du temps à mesure que le trafic augmente et mesure la façon dont la base de données répond à la fois au pic initial et à la concurrence élevée soutenue.
Tous les benchmarks s’exécutent sur Azure Database pour PostgreSQL serveur flexible dans la même région, dans la même zone de disponibilité, à l’aide du même profil de base de données de test et de charge de travail. En isolant le stockage et le calcul en tant que variables, vous assurez que les différences de performances reflètent les fonctionnalités de plateforme réelles plutôt que les variantes réseau, application ou charge de travail.
Détails de la configuration
Testez cinq configurations distinctes, variant à la fois le niveau de stockage et la taille de calcul pour illustrer les concepts de planification clés.
| Configuration | SKU de calcul | vCores | Mémoire | Nombre maximal d’IOPS de calcul | Type de stockage | Capacité | IOPS | Débit |
|---|---|---|---|---|---|---|---|---|
| Config 1 | Standard_D16ds_v5 | 16 | 64 Go | 25 600 (40 000 rafales) | SSD Premium (P50) | 4 095 Go | 7,500 | 250 Mo/s |
| Config 2 | Standard_D16ds_v5 | 16 | 64 Go | 25 600 (40 000 en rafale) | SSD Premium (P50) | 4 096 Go | 7,500 | 250 Mo/s |
| Configuration 3 | Standard_D16ds_v5 | 16 | 64 Go | 25 600 (40 000 rafales) | SSD Premium (P80) | 32 To | 20,000 | 900 Mo/s |
| Config 4 | Standard_D16ds_v5 | 16 | 64 Go | 25 600 (40 000 rafale) | SSD Premium v2 | 4 095 Go | 40,000 | 1 200 Mo/s |
| Configuration 5 | Standard_D32ds_v5 | 32 | 128 Go | 51 200 | SSD Premium v2 | 4 095 Go | 60 000 | 1 200 Mo/s |
Observations clés de la conception de configuration :
- Configuration 1 et Configuration 2 : Ces configurations diffèrent uniquement en taille de stockage, 4 095 Go par rapport à 4 096 Go. Cette comparaison teste la limite de mise en cache de l’hôte pour les disques SSD Premium v1.
- Config 2 vs. Config 3 : Les deux configurations utilisent SSD v1, mais Config 3 s’adapte à une capacité de 32 To pour maximiser les IOPS et un débit plus élevé.
- Config 3 vs. Config 4 : Les deux configurations utilisent la même capacité de calcul, mais Config 4 démontre les IOPS et le débit ajustables du Premium SSD v2 indépendamment de la capacité.
- Config 4 vs. Config 5 : La configuration 5 double la référence SKU de calcul pour montrer comment le calcul de niveau supérieur déverrouille davantage d’espace de performance de stockage.
Résultats des performances
Configuration 1 : 4 095 Go de SSD Premium v1 avec mise en cache de l’hôte
La configuration 1 utilise la taille 4 095 Go de SSD Premium v1, qui profite de la mise en cache de l’hôte sur SSD Premium v1. Pendant la charge de travail, cette configuration a été maintenue :
- Nombre maximal d’E/S par seconde : 24 773, limités à 7 500 IOPS provisionnés sur SSD Premium v1, avec mise en cache amplifiant les performances efficaces.
- Nombre maximal d’E/S par seconde de lecture : 21 330, bénéficiant du cache hôte pour les opérations intensives en lecture.
- Nombre maximal d’E/S par seconde d’écriture : 7 610.
La mise en cache de l’hôte fournit une amplification de lecture, donc les IOPS effectives dépassent momentanément la limite de 7 500 IOPS provisionnée du disque et atteignent les limites de stockage de calcul.
Configuration 2 : 4 096 Go de SSD Premium v1 sans mise en cache de l’hôte
La configuration 2 utilise la taille de ssd Premium v1 de 4 096 Go, en franchissant la limite de mise en cache et en perdant les avantages de la mise en cache de l’hôte. L’impact est visible :
- Nombre maximal d’IOPS : Les IOPS effectifs sont inférieurs par rapport à Config 1 à cause de la suppression du cache.
- Nombre maximal d’IOPS de lecture : Réduit considérablement sans cache d’hôte.
- Nombre maximal d’E/S par seconde d’écriture : 7 610, inchangé.
Cette configuration illustre l’importance pratique de la limite de mise en cache de 4 To. Le passage de 4 095 Go à 4 096 Go modifie le profil de performances en supprimant les lectures mises en cache. Pour augmenter les bases de données qui approchent de ce seuil, planifiez à l’avance.
Configuration 3 : SSD Premium 32 To v1 avec IOPS supérieures
La configuration 3 traite les limites supérieures d'IOPS et de débit des SSD Premium v1 en évoluant vers une capacité de 32 To. Cette configuration a été réalisée :
- Nombre maximal d’IOPS : 20 000.
- Nombre maximal d’IOPS de lecture : Environ 12 000.
- Nombre maximal d’E/S par seconde d’écriture : Environ 5 000.
L’augmentation de la capacité de stockage SSD Premium v1 sous-jacente augmente les E/S par seconde et le débit. Vous pouvez toujours atteindre les limites supérieures de la plage de stockage de calcul pour les charges de travail intensives.
Configuration 4 : SSD Premium v2 avec 40 000 IOPS
La configuration 4 démontre la configuration de performance flexible du SSD Premium v2, en approvisionnant 40 000 IOPS et un débit de 1 200 Mo/s avec une capacité de 4 095 Go.
- Nombre maximal d’IOPS : Utilisation plus efficace grâce à la capacité de latence et de débit de l'SSD Premium v2.
- Nombre maximal d’IOPS de lecture : Amélioration des performances par rapport aux configurations ssd Premium v1.
- Nombre maximal d’E/S par seconde d’écriture : Capacité d’écriture soutenue plus élevée.
Le SSD Premium v2 permet l’approvisionnement d’un nombre élevé d’E/S par seconde sans nécessiter une capacité de stockage importante, ce qui rend le SSD Premium v2 efficace pour les charges de travail à forte intensité de transactions.
Configuration 5 : SSD Premium v2 avec 60 000 IOPS sur D32ds_v5 calcul
La configuration 5 met à l’échelle les performances de stockage à 60 000 IOPS et les capacités de calcul avec Standard_D32ds_v5 et 32 vCores. Cette configuration illustre le principe d’alignement de bout en bout :
- Nombre maximal d’IOPS : Beaucoup plus élevé que toutes les configurations précédentes.
- Nombre maximal d’IOPS de lecture : Amélioration forte avec un espace de travail de calcul supplémentaire.
- Nombre maximal d’E/S par seconde d’écriture : Capacité d’écriture plus élevée soutenue.
En alignant à la fois le calcul et le stockage sur des niveaux de performances plus élevés, cette configuration atteint le meilleur débit et la pression la plus faible du processeur. Le plafond de stockage supérieur de D32ds_v5 permet au disque SSD Premium v2 de 60 000 IOPS d’être plus entièrement utilisé.
Leçons des benchmarks
Ces cinq configurations illustrent les principes clés de cet article :
-
La limite de mise en cache de 4 To est importante.
La configuration 1 par rapport à la configuration 2 montre que la mise en cache de l'hôte offre une amplification mesurable des performances de lecture pour des tailles inférieures à 4 To, alors que franchir le seuil de 4 To élimine cet avantage. -
La capacité n’est pas des performances.
Config 3 a fourni 32 To, mais n’a pas livré les IOPS les plus élevés. La capacité de stockage seule ne détermine pas le débit des transactions. -
Ssd Premium v2 offre un réglage flexible des performances.
La config quatre a démontré des IOPS élevés sur une capacité modeste, validant le modèle découplé activé par Premium SSD v2. -
Le calcul et le stockage doivent être alignés.
La configuration 5 montre que l’optimisation des performances de stockage nécessite suffisamment de marge de calcul. Le plafond de stockage supérieur de D32ds_v5 était nécessaire pour utiliser plus entièrement la provision de 60 000 IOPS.
Les résultats du benchmark valident le principe principal : les performances maximales sont une propriété de bout en bout. Aucune couche unique, telle que le stockage, le calcul ou la mise en réseau, détermine le résultat. La réussite nécessite un alignement intentionnel entre toutes les couches, la validation mesurée et l’observation continue à mesure que les charges de travail évoluent.
Conclusion
Azure Postgres fournit une plateforme puissante et flexible pour créer des solutions de base de données modernes hébergées dans le cloud. L’ingénierie dans Azure Calcul, stockage, mise en réseau, haute disponibilité, réplication, sécurité et observabilité permet d’obtenir certaines des architectures Postgres les plus performantes et résilientes disponibles.
Les performances maximales ne se produisent pas par accident.
Les performances opérationnelles maximales nécessitent la compréhension de l’application, des clients, de la charge de travail, du profil de croissance des données, de la combinaison lecture/écriture et des cycles métier qui modélisent la demande. Elle nécessite également d’aligner les choix de calcul et de stockage afin que les objectifs d’IOPS, de débit et de latence soient atteints de bout en bout.
Ssd Premium v1 peut fournir des performances prévisibles fortes, en particulier lorsque la mise en cache de l’hôte s’applique aux données inférieures à la limite de 4 To. Ssd Premium v2 ajoute une configuration de performances plus flexible en découplant la capacité, les IOPS et le débit. Ultra Disk représente la classe de performances de disque managée la plus élevée Azure, tandis que les générations de calcul plus récentes fournissent des plafonds de stockage distant agrégés beaucoup plus élevés pour les architectures haut de gamme.
Les meilleurs déploiements Azure Postgres combinent la fonctionnalité de plateforme avec une planification délibérée, une surveillance continue et une propriété opérationnelle claire. Avec les bonnes exigences et la bonne architecture, les équipes peuvent fournir des expériences Postgres de classe mondiale qui offrent des performances optimales.
Contenu connexe
- Azure Stockage Premium : conception pour des performances élevées
- Azure éclatement de disque
- Tailles de machine virtuelle de la série Ddv5 et Ddsv5
- Tailles de machine virtuelle de la série Ddsv6
- l'option de stockage SSD Premium dans Azure Database pour PostgreSQL
- option de stockage Premium SSD v2 dans Base de données Azure pour PostgreSQL
- Types de disques managés Azure
- Surveiller les métriques dans Azure Database pour PostgreSQL