S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table
Azure Cosmos DB utilise le débit approvisionné automatiquement pour gérer et mettre à l’échelle automatiquement les unités de requête par seconde (RU/s) de votre base de données ou de votre conteneur en fonction de l’utilisation. Cet article répond aux questions fréquemment posées sur la mise à l’échelle automatique dans Azure Cosmos DB.
Quelle est la différence entre la mise à l’échelle automatique et la mise à l’échelle automatique dynamique dans Azure Cosmos DB ?
La mise à l’échelle automatique ou le débit approvisionné en mode de mise à l’échelle automatique met à l’échelle les charges de travail en fonction de la région et de la partition les plus actives. En revanche, la mise à l’échelle automatique dynamique permet aux régions et partitions de vos charges de travail d’être mises à l’échelle de manière indépendante en fonction de l’utilisation. Nous vous recommandons une mise à l’échelle automatique dynamique pour tous les clients qui prévoient d’utiliser la mise à l’échelle automatique.
Comment puis-je activer la mise à l’échelle automatique dynamique sur un compte par programmation ?
Vous pouvez utiliser un modèle Resource Manager avec la version d’API 2023-11-15-preview
ou une préversion ultérieure pour définir la propriété enablePerRegionPerPartitionAutoscale
sur true. Vous pouvez voir cette propriété dans la vue JSON à l’aide de la préversion 2023-11-15-preview ou d’une préversion ultérieure.
Vous pouvez également utiliser Azure CLI ou PowerShell.
// Add Azure Cosmos DB extension 2.0.6-preview for PowerShell
Install-Module -Name Az.CosmosDB -RequiredVersion 2.0.6-preview -AllowPrerelease -AllowClobber -Force
// update the account using this command to enable or disable the property
Update-AzCosmosDBAccount -EnablePerRegionPerPartitionAutoscale $true -ResourceGroupName "<resource-group-name>" -Name "<cosmos-account-name>"
// Run this command to see the enablement or disablement status:
Get-AzCosmosDBAccount -ResourceGroupName "<resource-group-name>" -Name "<cosmos-account-name>"
Qu’advient-il des bases de données ou des conteneurs qui ont été créés dans le modèle de niveau autopilot antérieur ?
Les ressources qui ont été créées dans le modèle de niveau antérieur sont prises en charge automatiquement dans le nouveau modèle de RU/s personnalisée de mise à l’échelle automatique. La limite supérieure du niveau devient la nouvelle RU/s maximale, ce qui se traduit par la même plage d’échelle.
Par exemple, si vous avez précédemment sélectionné le niveau qui a été mis à l’échelle entre 400 RU/s et 4 000 RU/s, la base de données ou le conteneur affiche désormais un nombre maximal de 4 000 RU/s, ce qui varie entre 400 RU/s et 4 000 RU/s. Ensuite, vous pouvez modifier la RU/s maximale en valeur personnalisée en fonction de votre charge de travail.
Qu’est-ce que les RU/s de point d’entrée pour la mise à l’échelle automatique ?
À compter d’avril 2022, vous pouvez définir la mise à l’échelle automatique avec un nombre maximal de RU/s pouvant descendre jusqu’à 1 000 RU/s (mise à l’échelle entre 100 RU/s et 1 000 RU/s). Vous pouvez également définir une plage de mise à l’échelle de 200 RU/s à 2 000 RU/s ou de 300 RU/s à 3 000 RU/s. Auparavant, le point d’entrée était de 400 RU/s à 4 000 RU/s.
Nous recommandons cette configuration pour les charges de travail qui ont des exigences de débit faibles, mais qui peuvent toujours être mises à l’échelle jusqu’au nombre maximal de RU/s.
À quelle vitesse la mise à l’échelle automatique effectue-t-elle un scale-up en fonction des augmentations de trafic ?
Avec la mise à l’échelle automatique, le système met à l’échelle le débit (RU/s) T
vers le haut ou T
vers le bas dans la plage de 0,1 x Tmax
vers Tmax
en fonction du trafic entrant. Étant donné que la mise à l’échelle est automatique et instantanée, à tout moment, vous pouvez consommer jusqu’à Tmax
approvisionné sans retard.
Comment déterminer la RU/s sur laquelle le système est actuellement mis à l’échelle ?
Utilisez Mesures Azure Monitor pour analyser la RU/s maximale de mise à l’échelle automatique approvisionnée et le débit actuel (RU/s) sur lequel le système est mis à l’échelle.
Quels sont les tarifs de la mise à l’échelle automatique ?
Vous êtes facturé toutes les heures pour le débit le plus élevé T
sur lequel le système est mis à l’échelle dans l’heure en question. Si votre ressource ne comporte aucune demande pendant l’heure ou n’a pas été mise à l’échelle au-delà de 0,1 x Tmax
, vous êtes facturé au minimum 0,1 x Tmax
. Pour plus d’informations, consultez la page Tarification d’Azure Cosmos DB.
Comment la mise à l’échelle automatique s’affiche-t-elle sur ma facture ?
Dans les comptes de région d’écriture unique, le taux de mise à l’échelle automatique par 100 RU/s est de 1,5 fois le taux de débit standard (manuel) approvisionné. Votre facture affiche le compteur de débit approvisionné standard existant. La quantité de ce compteur est multipliée par 1,5. Par exemple, si la RU/s la plus élevée sur laquelle le système est mis à l’échelle en une heure est de 6 000 RU/s, vous êtes facturé 60 x 1,5 = 90 unités du compteur pour cette heure.
Dans les comptes couvrant plusieurs régions d’écritures, le taux de mise à l’échelle automatique par 100 RU/s est le même que le taux de débit standard (manuel) approvisionné couvrant plusieurs régions d’écriture. Votre facture affiche le compteur couvrant plusieurs régions d’écriture existant. Comme les taux sont les mêmes, si vous utilisez la mise à l’échelle automatique, vous verrez la même quantité que pour le débit standard.
La mise à l’échelle automatique fonctionne-t-elle avec la capacité de réserve ?
Oui. Avec une capacité de réserve pour des comptes couvrant des régions d’écriture unique, la remise de réservation pour ressources de mise à l’échelle automatique est appliquée à l’utilisation du compteur à un ratio de 1,5 fois le ratio de la région spécifique. Par exemple, si vous souhaitez utiliser une capacité réservée pour couvrir 10 000 RU/s de mise à l’échelle automatique, vous devez planifier l’achat de 15 000 RU/s de capacité réservée globale.
La capacité de réserve de régions d’écriture fonctionne de la même façon pour la mise à l’échelle automatique et le débit approvisionné standard (manuel). Pour plus d’informations, consultez Capacité de réserve Azure Cosmos DB.
La mise à l’échelle automatique fonctionne-t-elle avec le niveau Gratuit d’Azure Cosmos DB ?
Oui. Au niveau Gratuit, vous pouvez utiliser le débit de mise à l’échelle automatique sur une base de données ou sur un conteneur. En savoir plus sur la façon dont fonctionne la facturation du niveau gratuit avec la mise à l’échelle automatique.
La mise à l’échelle automatique est-elle prise en charge pour toutes les API ?
Oui. La mise à l’échelle automatique est prise en charge pour toutes les API : NoSQL, Gremlin, Table, Cassandra et MongoDB.
La mise à l’échelle automatique est-elle prise en charge pour les comptes d’écriture multirégion ?
Oui. La RU/s maximale est disponible dans chaque région que vous ajoutez au compte Azure Cosmos DB.
Comment faire pour activer la mise à l’échelle automatique sur de nouveaux conteneurs ou bases de données ?
Puis-je activer la mise à l’échelle automatique sur un conteneur ou une base de données existant(e) ?
Oui. Vous pouvez aussi basculer entre la mise à l’échelle automatique et le débit approvisionné standard (manuel). Actuellement, pour toutes les API, vous pouvez utiliser le portail Microsoft Azure, l’interface de ligne de commande Azure ou PowerShell pour effectuer ces opérations. Par défaut, vous ne pouvez pas utiliser les SDK clients Azure Cosmos DB ou le modèle Azure Resource Manager (ARM) pour effectuer une migration entre le débit approvisionné manuel et la mise à l’échelle automatique. Toutefois, vous pouvez utiliser les SDK clients ou un modèle Azure Resource Manager (ARM) pour créer des ressources de mise à l’échelle automatique et modifier le nombre maximal de RU/s sur une ressource de mise à l’échelle automatique existante.
Comment la migration entre la mise à l’échelle automatique et le débit approvisionné standard (manuel) fonctionne-t-elle ?
Conceptuellement, la modification du type de débit est un processus en deux étapes. Tout d’abord, vous envoyez une requête de modification des paramètres de débit pour utiliser la mise à l’échelle automatique ou le débit approvisionné manuellement. Dans les deux cas, le système détermine et définit automatiquement une valeur RU/s initiale, en fonction des paramètres de débit et du stockage actuels. Au cours de cette étape, aucune valeur RU/s fournie par l’utilisateur n’est acceptée. Ensuite, une fois la mise à jour terminée, vous pouvez modifier la RU/s pour l’adapter à votre charge de travail.
Effectuer une migration du débit approvisionné standard (manuel) vers la mise à l’échelle automatique
Pour un conteneur, utilisez la formule suivante qui vise à estimer la RU/s maximale de mise à l’échelle automatique :
MAX(1,000, current manual provisioned RU/s, maximum RU/s ever provisioned / 10, storage in GB × 10)
, arrondie aux 1 000 RU/s les plus proches.
La RU/s maximale de mise à l’échelle automatique initiale réelle peut varier en fonction de la configuration de votre compte.
Exemple 1 : vous disposez d’un conteneur avec un débit approvisionné manuel de 10 000 RU/s et un stockage de 25 Go. Une fois la mise à l’échelle automatique activée, la valeur RU/s maximale de mise à l’échelle automatique initiale est de 10 000 RU/s, correspondant à des valeurs comprises entre 1 000 et 10 000 RU/s.
Exemple 2 : vous disposez d’un conteneur avec un débit approvisionné manuel de 50 000 RU/s et un stockage de 25 000 Go. Une fois la mise à l’échelle automatique activée, la valeur RU/s maximale de mise à l’échelle automatique initiale est de 250 000 RU/s, correspondant à des valeurs comprises entre 25 000 et 250 000 RU/s.
Effectuer une migration de la mise à l’échelle automatique vers le débit approvisionné standard (manuel)
Le débit manuel approvisionné initial est égal à la valeur RU/s maximale de mise à l’échelle automatique actuelle.
Exemple : vous disposez d’une base de données ou d’un conteneur de mise à l’échelle automatique dont le nombre maximal de RU/s est de 20 000 RU/s (mise à l’échelle entre 2 000 RU/s et 20 000 RU/s). Lors de la mise à jour pour utiliser le débit provisionné manuel, le débit initial est de 20 000 RU/s.
Si vous devez migrer un grand nombre de ressources de débit, envisagez d’utiliser le script Azure CLI – Convertir en mise à l’échelle automatique.
Puis-je utiliser Azure CLI, PowerShell ou Azure Resource Manager pour gérer des bases de données ou des conteneurs qui utilisent la mise à l’échelle automatique ?
Oui. Pour activer programmatiquement la mise à l’échelle automatique sur une base de données ou un conteneur existant, vous pouvez utiliser Azure CLI ou PowerShell.
Pour créer une base de données ou un conteneur qui utilise la mise à l’échelle automatique, vous pouvez utiliser l’interface de ligne de commande Azure, PowerShell ou un modèle Azure Resource Manager.
La mise à l’échelle automatique est-elle prise en charge pour les bases de données à débit partagé ?
Oui. Afin d’activer la mise à l’échelle automatique pour une base de données à débit partagé, lorsque vous créez cette dernière, sélectionnez mise à l’échelle automatique et l’option Approvisionner le débit.
Combien de conteneurs sont autorisés par base de données à débit partagé lorsque la mise à l’échelle automatique est activée ?
Azure Cosmos DB applique un maximum de 25 conteneurs dans une base de données à débit partagé. La valeur maximale s’applique aux bases de données qui ont un débit avec mise à l’échelle automatique ou un débit standard (manuel).
Comment la mise à l’échelle automatique affecte-t-elle le niveau de cohérence de la base de données ?
La mise à l’échelle automatique n’a aucun effet sur le niveau de cohérence d’une base de données.
Pour plus d’informations, consultez Niveaux de cohérence.
Quelle limite de stockage est associée à chaque option RU/s maximale ?
La limite de stockage en Go pour chaque RU/s maximale est la quantité maximale de RU/s de la base de données ou du conteneur divisée par 10. Par exemple, si le nombre maximal de RU/s est de 20 000, la ressource peut prendre en charge 2 000 Go de stockage.
Pour connaître le nombre maximal de RU/s disponibles et les options de stockage, consultez Limites d’approvisionnement de mise à l’échelle automatique du débit.
Que se passe-t-il si je dépasse la limite de stockage associée à mon débit maximal ?
Si la limite de stockage associée au débit maximal de la base de données ou du conteneur est dépassée, Azure Cosmos DB augmente automatiquement le débit maximal à la valeur RU/s suivante la plus élevée pouvant prendre en charge ce niveau de stockage.
Voici un exemple de scénario : si vous démarrez avec des RU/s maximales de 50 000 (avec une mise à l’échelle de 5 000 à 50 000 RU/s), vous pouvez stocker jusqu’à 5 000 Go de données. Si votre taille de stockage monte à 5 001 Go, le stockage est désormais de 6 000 Go et le nouveau nombre maximal de RU/s est de 60 000 RU/s (mise à l’échelle entre 6 000 RU/s et 60 000 RU/s).
Puis-je modifier l’unité de RU/s maximale sur la base de données ou le conteneur ?
Oui. Pour plus d’informations, consultez Comment approvisionner un débit avec mise à l’échelle automatique.
Lorsque vous modifiez le nombre maximal de RU/s, en fonction de la valeur demandée, l’opération asynchrone peut prendre 4 à 6 heures. Plus d’informations
Comment augmenter le nombre maximal de RU/s ?
Lorsque vous envoyez une requête pour augmenter l’unité de RU/s maximale Tmax
, en fonction de la RU/s sélectionnée, le service approvisionne plus de ressources pour prendre en charge l’unité de RU/s maximale la plus élevée. Pendant que cela se produit, vos charges de travail et opérations existantes ne sont pas affectées. Le système continue à mettre à l’échelle votre base de données ou votre conteneur entre les valeurs 0,1 x Tmax
et Tmax
précédentes, jusqu’à ce que la nouvelle plage de mise à l’échelle de 0,1 x Tmax_new
à Tmax_new
soit prête.
Comment réduire le nombre maximal de RU/s ?
Lorsque vous réduisez l’unité de RU/s maximale, la valeur minimale que vous pouvez lui affecter est MAX(1,000, highest maximum RU/s ever provisioned / 10, current storage in GB × 10)
, arrondie aux 1 000 RU/s les plus proches.
Exemple 1 : vous disposez d’un conteneur avec mise à l’échelle automatique dont le nombre maximal de RU/s est de 20 000 RU/s (mise à l’échelle entre 2 000 RU/s et 20 000 RU/s) et de 1 500 Go de stockage. La valeur minimale la plus basse que vous pouvez définir pour la RU/s maximale est : MAX(1,000, 20,000 / 10, 1,500 × 10)
= 15 000 RU/s (mise à l’échelle entre 1 500 et 15 000 RU/s).
Exemple 2 : vous disposez d’un conteneur avec mise à l’échelle automatique dont le nombre maximal de RU/s est de 100 000 RU/s et de 100 Go de stockage. Vous pouvez à présent mettre à l’échelle la RU/s maximale jusqu’à 150 000 RU/s (mise à l’échelle entre 15 000 RU/s et 150 000 RU/s). La valeur minimale la plus basse que vous pouvez désormais définir pour la RU/s maximale est : MAX(1,000, 150,000 / 10, 100 × 10)
= 15 000 RU/s (mise à l’échelle entre 1 500 et 15 000 RU/s).
Pour une base de données à débit partagé, lorsque vous réduisez la RU/s maximale, la valeur minimale que vous pouvez lui affecter est MAX(1,000, highest maximum RU/s ever provisioned / 10, current storage in GB × 10, 1,000 + (MAX(Container count - 25, 0) × 1,000))
, arrondie aux 1 000 RU/s les plus proches.
Ces formules et exemples s’appliquent au nombre maximal de RU/s de mise à l’échelle automatique minimale que vous pouvez définir. Elles sont distinctes de la plage de 0,1 × Tmax
à Tmax
à laquelle le système effectue automatiquement une mise à l’échelle. Quel que soit le nombre maximal de RU/s, le système est toujours mis à l’échelle entre 0,1 × Tmax
et Tmax
.
Comment fonctionne la durée de vie avec la mise à l’échelle automatique ?
Les opérations de TTL n’affectent pas la mise à l’échelle de la RU/s dans le cadre de la mise à l’échelle automatique. Toutes les unités de requête qui sont consommées en raison de la durée de vie ne font pas partie de la RU/s facturée pour le conteneur avec mise à l’échelle automatique.
Par exemple, pour un conteneur avec mise à l’échelle automatique qui dispose de 400 RU/s à 4 000 RU/s :
- Heure 1 : T = 0 : Le conteneur n’a aucune utilisation (aucune durée de vie ni requête de charge de travail). L’unité de requête/s facturable est de 400 RU/s.
- Heure 1 : T = 1 : La durée de vie est activée.
- Heure 1 – T=2 : le conteneur commence à recevoir des requêtes. Les requêtes consomment 1 000 RU/s en 1 seconde. 200 RU/s de TTL sont utilisées. La RU/s facturable est toujours de 1 000 RU/s. Quel que soit le moment où les suppressions de TTL se produisent, elles n’affectent pas la logique de mise à l’échelle de la mise à l’échelle automatique.
Comment le nombre maximal de RU/s est-il mappé à des partitions physiques ?
Lors de la première sélection du nombre maximal de RU/s, Azure Cosmos DB approvisionne en divisant le nombre maximal de RU/s par 10 000 RU/s pour obtenir le nombre de partitions physiques requises. Chaque partition physique peut prendre en charge jusqu’à 10 000 RU/s et 50 Go de stockage. À mesure que la taille de stockage augmente, Azure Cosmos DB fractionne automatiquement les partitions pour ajouter des partitions physiques afin de gérer l’augmentation du stockage. Si le stockage dépasse la limite associée, Azure Cosmos DB augmente le nombre maximal de RU/s.
La RU/s maximale de la base de données ou du conteneur est divisée uniformément entre toutes les partitions physiques. Le débit total auquel toute partition physique unique peut être mise à l’échelle est le nombre maximal de RU/s de la base de données ou du conteneur divisé par le nombre de partitions physiques.
Que se passe-t-il si les requêtes entrantes dépassent la valeur RU/s maximale de la base de données ou du conteneur ?
Si le nombre total de RU/s consommées dépasse le nombre maximal de RU/s de la base de données ou du conteneur, les requêtes qui dépassent le nombre maximal de RU/s sont limitées et retournent un code d’état 429. Les requêtes qui entraînent une utilisation normalisée supérieure à 100 % sont limitées. L’utilisation normalisée est définie comme la quantité maximale d’utilisation de RU/s parmi toutes les partitions physiques.
Par exemple, votre débit maximal est de 20 000 RU/s et vous disposez de deux partitions physiques, P_1 et P_2. Chaque partition est capable de se mettre à l’échelle jusqu’à 10 000 RU/s. Dans une seconde donnée, si P_1 a utilisé 6 000 RU/s et P_2 a utilisé 8 000 RU/s, l’utilisation normalisée est MAX(6,000 RU / 10,000 RU, 8,000 RU / 10,000 RU)
= 0,8.
Remarque
Les kits de développement logiciel (SDK) et les outils d’importation de données du client Azure Cosmos DB (Azure Data Factory, la bibliothèque d’exécuteur en bloc) font automatiquement une nouvelle tentative après le renvoi d’une erreur de code 429, de sorte que les erreurs de code 429 occasionnelles ne sont pas problématiques. Un nombre élevé et soutenu d’erreurs de code 429 peut indiquer que vous devez augmenter le nombre maximal de RU/s ou réexaminer votre stratégie de partitionnement pour inclure une partition à chaud.
Des erreurs de limitation de débit peuvent-elles se produire lorsque la mise à l’échelle automatique est activée ?
Oui. Il est possible d’observer des erreurs de code 429 dans deux scénarios.
Tout d’abord, quand le nombre total de RU/s consommées dépasse le nombre maximal de RU/s de la base de données ou du conteneur, le service limite les requêtes en conséquence.
Ensuite, si une valeur de clé de partition logique présente un nombre de requêtes beaucoup plus élevé que d’autres valeurs de clé de partition (comme pour une partition à chaud), la partition physique sous-jacente peut dépasser son budget de RU/s. En guise de bonne pratique, pour éviter les partitions à chaud, choisissez une clé de partition appropriée qui entraîne une répartition égale du stockage et du débit.
Par exemple, si vous sélectionnez l’option de débit maximal de 20 000 RU/s et que vous avez 200 Go de stockage, si vous avez quatre partitions physiques, chaque partition physique peut être mise à l’échelle automatiquement jusqu’à 5 000 RU/s. Si une partition à chaud se trouve sur une clé de partition logique spécifique, vous verrez des erreurs de code 429 lorsque la partition physique sous-jacente dans laquelle elle réside dépasse 5 000 RU/s ou 100 % d’utilisation normalisée.
L’affichage d’erreurs de code 429 lorsque vous utilisez la mise à l’échelle automatique n’indique pas nécessairement un problème au niveau de votre base de données ou conteneur. En règle générale, pour une charge de travail de production, si entre 1 et 5 % des requêtes présentent des erreurs de code 429 et que votre latence de bout en bout est acceptable, les erreurs sont un signe sain que les RU/s sont entièrement utilisées. Aucune action n'est requise.
En savoir plus sur l’interprétation et le débogage des erreurs de code 429 de limitation de débit.
La consommation de RU/s normalisée peut-elle être de 100 % si la mise à l’échelle automatique n’est pas mise à l’échelle jusqu’au nombre maximal de RU/s ?
Oui. Pour plus d’informations, consultez Surveiller les RU/s normalisées.
Étapes suivantes
- Découvrez comment activer la mise à l’échelle automatique sur une base de données ou un conteneur Azure Cosmos DB.
- En savoir plus sur les avantages du débit approvisionné en utilisant la mise à l’échelle automatique.
- Apprenez-en davantage sur les partitions logiques et physiques.