Capacité de calcul, nœuds et unités de traitement

Cette page décrit la capacité de calcul de Spanner et les deux unités de mesure utilisées pour la quantifier: les nœuds et les unités de traitement.

Capacité de calcul

La capacité de calcul définit la quantité de ressources de serveur et de stockage disponibles pour les bases de données d'une instance. Lorsque vous créez une instance, vous spécifiez sa capacité de calcul en nombre d'unités de traitement ou en nombre de nœuds, 1000 unités de traitement étant égales à 1 nœud.

L'unité de mesure que vous utilisez n'a pas d'importance, sauf si vous créez une instance dont la capacité de calcul est inférieure à 1 000 unités de traitement (1 nœud). Dans ce cas, vous devez utiliser des unités de traitement pour spécifier la capacité de calcul de l'instance.

Lorsque vous définissez ou modifiez la capacité de calcul d'une instance, vous spécifiez les unités de traitement par multiples de 100 (100, 200, 300, etc.). Lorsque le nombre d'unités de traitement atteint 1 000, vous pouvez spécifier des quantités plus importantes sous forme de multiples de 1 000 unités de traitement (1 000, 2 000, 3 000, etc.) ou de nœuds (1, 2, 3, etc.).

Les instances comportant moins de 1 000 unités de traitement sont conçues pour des tailles de données, des requêtes et des charges de travail plus petites. Leurs ressources de calcul sont limitées, ce qui peut entraîner un scaling et des performances non linéaires pour certaines charges de travail, ainsi qu'une augmentation intermittente des latences.

Limites de stockage des données

Comme indiqué dans la section Quotas et limites, afin de garantir une haute disponibilité et une faible latence lors de l'accès à une base de données, Spanner utilise la capacité de calcul d'une instance comme base pour déterminer les limites de stockage, en suivant les instructions ci-dessous:

  • Pour les instances de moins d'un nœud (1 000 unités de traitement), Spanner alloue 409,6 Go de données par tranche de 100 unités de traitement dans la base de données.
  • Pour les instances de 1 nœud ou plus, Spanner attribue 4 To de données à chaque nœud. Une augmentation de la capacité de stockage (10 To par nœud) est disponible dans certaines configurations d'instances Spanner régionales, birégionales et multirégionales. Pour en savoir plus, consultez Améliorations des performances et de l'espace de stockage.

Par exemple, pour créer une instance pour une base de données de 300 Go, vous pouvez définir sa capacité de calcul sur 100 unités de traitement. Cette capacité de calcul maintient l'instance en dessous de la limite jusqu'à ce que la base de données atteigne plus de 409,6 Go. Une fois que la base de données a atteint cette taille, vous devez ajouter 100 unités de traitement supplémentaires pour permettre à la base de données de se développer. Sinon, Spanner risque de rejeter les écritures dans la base de données. Pour en savoir plus, consultez la page Recommandations pour l'utilisation du stockage de base de données.

Spanner facture l'espace de stockage réellement utilisé par les instances, et non l'espace de stockage total alloué.

Performances

Les valeurs maximales de débit en lecture et en écriture qu'une quantité donnée de capacité de calcul peut fournir dépendent de la configuration de l'instance, de la conception du schéma et des caractéristiques de l'ensemble de données. Reportez-vous aux sections Performances des configurations régionales et Performances des configurations multirégionales pour en savoir plus.

Vous utilisez des instances comptant moins de 1 000 unités de traitement pour des tailles de données, des requêtes et des charges de travail plus petites. Pour les charges de travail plus importantes, leurs ressources de calcul limitées peuvent entraîner un scaling et des performances non linéaires, avec des augmentations intermittentes des latences.

Capacité de calcul et configurations d'instances

Comme décrit dans la section Configurations régionales, birégionales et multirégionales, Spanner répartit une instance entre les zones d'une ou de plusieurs régions afin de fournir des performances et haute disponibilité. Par conséquent, Spanner répartit également les ressources de serveur fournies par la capacité de calcul de l'instance.

Voici un diagramme illustrant cette répartition des ressources de serveur :

Deux instances créées dans une configuration d'instance régionale

Ce diagramme illustre deux instances avec des configurations régionales :

  • Instance-A affiche une instance de 1 000 unités de traitement (un nœud) avec la répartition de la capacité de calcul consommant des ressources de serveur dans chacune des trois zones.
  • L'instance Instance-B affiche une instance de 2 000 unités de traitement (deux nœuds) avec la répartition de la capacité de calcul consommant des ressources de serveur dans chacune des trois zones.

Notez les points suivants dans ce schéma :

  • Pour chaque instance, Spanner alloue des ressources de serveur dans chaque zone de la configuration régionale. Chaque ressource de serveur zonale utilise l'instance répliquée de données dans sa zone. Pour en savoir plus sur les instances dupliquées de données dans les configurations d'instance, consultez la page Configurations régionales, birégionales et multirégionales. Pour savoir comment Spanner synchronise ces instances répliquées de données, consultez la page Réplication.

  • Les ressources serveur pour Instance-A sont indiquées dans des cases individuelles, tandis que les ressources de serveur pour Instance-B sont présentées dans des cases subdivisées en deux parties. Cette différence montre que Spanner alloue les ressources de serveur différemment aux instances de tailles différentes:

    • Pour les instances de 1 000 unités de traitement ou moins (un nœud), Spanner alloue les ressources de serveur à une seule tâche de serveur par zone.
    • Pour les instances de plus de 1 000 unités de traitement (1 nœud), Spanner alloue les ressources de serveur à plusieurs tâches de serveur par zone, à raison d'une tâche pour 1 000 unités de traitement. L'utilisation de plusieurs tâches de serveur par zone améliore les performances et permet à Spanner de créer des divisions de base de données, tout en améliorant les performances.

Modifier la capacité de calcul

Après avoir créé une instance, vous pouvez augmenter sa capacité de calcul ultérieurement. Dans la plupart des cas, les requêtes sont traitées en quelques minutes. Dans de rares cas, un scaling à la hausse peut prendre jusqu'à une heure.

Dans la plupart des cas, vous pouvez également réduire la capacité de calcul. Dans certains cas, vous ne pouvez pas réduire la capacité de calcul:

  • Pour supprimer de la capacité de calcul, votre instance doit stocker plus de 4 To de données pour 1 000 unités de traitement (1 nœud).
  • Sur la base de l'historique de vos schémas d'utilisation, Spanner a créé un grand nombre de divisions pour les données de votre instance. Dans de rares cas, Spanner n'est pas en mesure de gérer les divisions après avoir supprimé de la capacité de calcul.

Dans ce dernier cas, vous pouvez essayer de réduire progressivement la capacité de calcul jusqu'à trouver la capacité minimale dont Spanner a besoin pour gérer toutes les divisions de l'instance. Si l'instance n'a plus besoin d'autant de divisions en raison d'un changement dans les schémas d'utilisation, Spanner peut à terme fusionner certaines divisions et vous permettre d'essayer de réduire davantage la capacité de calcul de l'instance au bout d'une semaine ou deux.

Lorsque vous supprimez de la capacité de calcul, surveillez l'utilisation du processeur et la latence des requêtes dans Cloud Monitoring pour vous assurer que cette utilisation reste inférieure à 65% pour les instances régionales et à 45% pour chaque région dans les instances multirégionales. Vous risquez de constater une augmentation temporaire des latences des requêtes lors de la suppression de la capacité de calcul.

Spanner ne dispose pas de mode de suspension. La capacité de calcul Spanner est une ressource dédiée et, même lorsque vous n'exécutez pas de charge de travail, Spanner effectue fréquemment des tâches en arrière-plan pour optimiser et protéger vos données.

Vous pouvez modifier la capacité de calcul à l'aide de la console Google Cloud, de Google Cloud CLI ou des bibliothèques clientes Spanner. Pour en savoir plus, consultez la section Modifier la capacité de calcul.

Capacité de calcul et instances dupliquées

Si vous devez faire évoluer les ressources de serveur et de stockage de votre instance, augmentez la capacité de calcul de l'instance. Notez que l'augmentation de la capacité de calcul n'augmente pas le nombre d'instances répliquées (qui sont fixes pour une configuration d'instance donnée), mais augmente plutôt les ressources de chaque instance dupliquée dans l'instance. L'augmentation de la capacité de calcul donne à chaque instance répliquée plus de processeur et de mémoire RAM, ce qui augmente le débit de l'instance répliquée (c'est-à-dire que davantage de lectures et d'écritures par seconde peuvent se produire).

Étapes suivantes