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 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 en tant que multiples de 1 000 unités de traitement (1 000, 2 000, 3 000, etc.) ou en tant que 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. Elles disposent de ressources de calcul limitées, ce qui peut entraîner un scaling et des performances non linéaires pour certaines charges de travail, et des augmentations intermittentes des latences.

Limites de stockage des données

Comme indiqué dans la section Quotas et limites, afin de fournir 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 consignes 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 de la base de données.
  • Pour les instances à un 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 et multirégionales. Pour en savoir plus, consultez la section 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 dépasse 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 section Recommandations pour l'utilisation du stockage de base de données.

Spanner facture l'espace de stockage 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 Configurations régionales et Configurations multirégionales pour en savoir plus.

Vous utilisez des instances avec moins de 1 000 unités de traitement pour des 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 et multirégionales, Spanner distribue une instance dans les zones d'une ou de plusieurs régions pour fournir des performances et haute disponibilité. Par conséquent, Spanner distribue également les ressources 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 (1 nœud) avec une répartition de la capacité de calcul consommant des ressources serveur dans chacune des trois zones.
  • Instance-B affiche une instance de 2 000 unités de traitement (2 nœuds) avec une répartition de la capacité de calcul consommant des ressources serveur dans chacune des trois zones.

Notez les points suivants dans ce schéma :

  • Pour chaque instance, Spanner alloue des ressources 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 répliquées de données dans les configurations d'instance, consultez la page Configurations régionales et multirégionales. Pour savoir comment Spanner synchronise ces instances répliquées de données, consultez la page Réplication.

  • Les ressources de serveur pour Instance-A sont affichées dans des cadres simples, tandis que les ressources pour Instance-B sont affichées dans des cadres subdivisés en deux parties. Cette différence montre que Spanner alloue les ressources serveur différemment selon la taille des instances:

    • Pour les instances comptant 1 000 unités de traitement (1 nœud) ou moins, Spanner alloue les ressources de serveur dans 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 dans 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 et d'améliorer ainsi les performances.

Augmenter et diminuer la capacité de calcul

Après avoir créé une instance, vous pouvez augmenter sa capacité de calcul ultérieurement. Dans la plupart des cas, vous pouvez également réduire la capacité de calcul. Dans certains cas, il n'est pas possible de réduire la capacité de calcul:

  • Si vous supprimez 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).
  • En se basant sur 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 ne pourrait pas les gérer après la suppression 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'une modification des schémas d'utilisation, Spanner peut à terme fusionner certaines divisions et vous permettre de réduire davantage la capacité de calcul de l'instance après une semaine ou deux.

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

Vous pouvez utiliser la console Google Cloud, la Google Cloud CLI ou les bibliothèques clientes pour modifier la capacité de calcul.

Spanner ne propose pas de mode suspendu. 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.

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 fixés pour une configuration d'instance donnée), mais augmente les ressources dont dispose chaque instance répliquée dans l'instance. L'augmentation de la capacité de calcul donne à chaque instance répliquée plus de processeur et de RAM, ce qui augmente son débit (en d'autres termes, davantage de lectures et d'écritures par seconde peuvent se produire).

Étapes suivantes