Le modèle de mise à l'échelle multi-cluster permet aux groupes de ressources interactifs d'ajuster automatiquement les ressources de calcul en fonction de la charge de travail des requêtes. En répartissant les requêtes sur un ou plusieurs clusters, ce modèle prend en charge l'isolation des ressources et les scénarios à forte concurrence.
Prérequis
Vous avez créé un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
-
La version mineure de votre cluster est la 3.1.10.0 ou une version ultérieure.
RemarquePour afficher et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
Groupe de ressources multi-cluster
Sans la fonctionnalité multi-cluster, un groupe de ressources utilise un seul cluster pour exécuter les requêtes. Toutes les requêtes soumises au groupe de ressources partagent ses ressources de calcul. Si trop de requêtes s'exécutent simultanément, elles entrent en concurrence pour l'accès aux ressources, ce qui ralentit les performances. Lorsque la limite de concurrence est atteinte, les requêtes suivantes sont mises en file d'attente.
Un groupe de ressources multi-cluster se compose d'un ou plusieurs clusters. Il gère les fluctuations de la charge de travail en provisionnant les ressources du cluster de manière statique ou dynamique. Lorsqu'un nœud d'accès reçoit une requête, il utilise l'équilibrage de charge pour l'assigner à un cluster spécifique au sein du groupe de ressources. Les requêtes exécutées sur différents clusters fonctionnent de manière indépendante et ne s'influencent pas mutuellement, comme illustré dans la figure suivante.
Un groupe de ressources multi-cluster est idéal pour améliorer la concurrence des requêtes de petite et moyenne taille et réduire la contention des ressources. Il n'améliore pas la vitesse des requêtes lentes ni des jobs ETL.
Avantages de la fonctionnalité multi-cluster
Pour un groupe de ressources dont la fonctionnalité multi-cluster n'est pas activée, vous devez effectuer les opérations manuelles suivantes lorsque la charge de travail des requêtes augmente et que les ressources de calcul deviennent insuffisantes :
Ajustez manuellement les ressources du groupe de ressources pour répondre aux besoins métier.
Si les requêtes volumineuses et les petites requêtes entrent en concurrence pour les ressources et ralentissent le temps de réponse des petites requêtes, redirigez les requêtes volumineuses vers un autre groupe de ressources.
Lorsque la charge de travail des requêtes diminue et qu'il existe des ressources de calcul excédentaires, réduisez manuellement les ressources du groupe de ressources afin de réaliser des économies.
Un groupe de ressources avec la fonctionnalité multi-cluster activée se compose de plusieurs clusters de même taille, ce qui offre les avantages suivants :
En mode élastique, vous n'avez pas besoin d'ajuster manuellement la taille du groupe de ressources pour gérer les fluctuations de la charge de travail des requêtes. AnalyticDB for MySQL ajuste automatiquement le nombre de clusters en fonction de la charge des requêtes.
En mode maximal, vous pouvez contrôler les ressources de calcul totales du groupe de ressources en ajustant le nombre de clusters.
Les clusters au sein d'un groupe de ressources sont isolés les uns des autres. Une requête volumineuse n'affecte que le cluster sur lequel elle s'exécute et n'impacte pas les requêtes des autres clusters.
Limites
Le modèle de mise à l'échelle multi-cluster s'applique uniquement aux groupes de ressources interactifs.
Les groupes de ressources créés sur des clusters dont la version mineure est antérieure à la 3.1.10.0 ne prennent pas en charge le modèle de mise à l'échelle multi-cluster. Pour utiliser cette fonctionnalité, créez un nouveau groupe de ressources interactif.
Pour les clusters Data Lakehouse Edition, un groupe de ressources interactif ne peut pas utiliser simultanément le modèle de mise à l'échelle multi-cluster (c'est-à-dire que vous définissez à la fois Maximum Clusters et Minimum Clusters pour le groupe de ressources) et un plan de mise à l'échelle spécifié, tel qu'un plan de mise à l'échelle Interactive Resource Group ou un plan Default Proportional Scaling for EIUs.
Facturation
Après avoir activé la fonctionnalité multi-cluster, le nombre de clusters dans un groupe de ressources interactif s'adapte de manière élastique. Vous êtes facturé pour les ressources élastiques en fonction de l'utilisation, calculée à l'aide de la formule suivante : Spécifications par cluster × Nombre de clusters. Pour plus d'informations, consultez les rubriques Tarification pour Enterprise Edition et Basic Edition et Tarification pour Data Lakehouse Edition.
Activation de la fonctionnalité multi-cluster
Vous pouvez activer la fonctionnalité multi-cluster lors de la création d'un groupe de ressources ou en modifiant la configuration d'un groupe de ressources existant.
Connectez-vous à la console AnalyticDB for MySQL, puis sélectionnez la région où réside votre cluster dans le coin supérieur gauche. Dans le volet de navigation de gauche, cliquez sur Clusters, puis cliquez sur l'ID du cluster cible.
Dans le volet de navigation de gauche, cliquez sur et accédez à l'onglet Resource Groups.
Sur la page Resource Groups, cliquez sur Create Resource Group ou recherchez le groupe de ressources cible et cliquez sur Modify dans la colonne Actions.
-
Assurez-vous que le type de job est Interactive, activez la fonctionnalité multi-cluster, puis configurez les paramètres suivants.
Paramètre
Description
Engine
Sélectionnez Xihe engine ou Spark.
-
Xihe engine : Ce groupe de ressources prend uniquement en charge Xihe SQL.
-
Spark engine : Ce groupe de ressources prend uniquement en charge les jobs Spark. Les jobs Spark sont traités de manière interactive.
Cluster Size
La taille d'un seul cluster en ACU. Vous pouvez spécifier n'importe quelle valeur, mais le minimum est de 16 ACU.
Si vous sélectionnez le moteur Spark, vous devez comprendre la correspondance entre la Cluster Size et les spécifications du pilote Spark et de l'exécuteur Spark afin de choisir une Cluster Size appropriée. Pour plus d'informations, consultez la section Annexe : Correspondance entre la taille du cluster et les spécifications du pilote Spark et de l'exécuteur Spark.
Minimum Clusters
Le nombre minimal de clusters à maintenir dans le groupe de ressources. Cette valeur doit être inférieure ou égale à la valeur de Maximum Clusters. La valeur minimale est 1.
-
Lorsque vous définissez des valeurs différentes pour Minimum Clusters et Maximum Clusters, AnalyticDB for MySQL effectue une mise à l'échelle dynamique (vers le haut ou vers le bas) entre les valeurs configurées de Minimum Clusters et Maximum Clusters en fonction de la charge des requêtes du groupe de ressources.
-
Si vous définissez la même valeur pour Minimum Clusters et Maximum Clusters, AnalyticDB for MySQL démarre le nombre spécifié de clusters après la création du groupe de ressources. Cela vous permet de contrôler statiquement les ressources de calcul totales du groupe de ressources.
Maximum Clusters
Le nombre maximal de clusters vers lesquels le groupe de ressources peut effectuer une mise à l'échelle. La valeur maximale est 10.
-
Lorsque vous définissez des valeurs différentes pour Minimum Clusters et Maximum Clusters, AnalyticDB for MySQL effectue une mise à l'échelle dynamique (vers le haut ou vers le bas) entre les valeurs configurées de Minimum Clusters et Maximum Clusters en fonction de la charge des requêtes du groupe de ressources.
-
Si vous définissez la même valeur pour Minimum Clusters et Maximum Clusters, AnalyticDB for MySQL démarre le nombre spécifié de clusters après la création du groupe de ressources. Cela vous permet de contrôler statiquement les ressources de calcul totales du groupe de ressources.
Spark Configuration
Paramètres de configuration des applications Spark qui s'appliquent à tous les jobs Spark exécutés dans ce groupe de ressources. Pour configurer les paramètres d'un job Spark spécifique, définissez-les dans le code lors de la soumission du job.
RemarqueCe paramètre ne peut être configuré que si Engine est défini sur Spark engine.
-
-
Cliquez sur OK pour activer la fonctionnalité multi-cluster.
Une fois la fonctionnalité multi-cluster activée, l'onglet Resource Groups affiche le nombre minimal, maximal et actuel de clusters en cours d'exécution pour le groupe de ressources. Vous pouvez également cliquer sur Monitoring dans la colonne Actions pour afficher les métriques détaillées du groupe de ressources.
Effets de la modification des limites de cluster
La modification des valeurs Minimum Clusters et Maximum Clusters affecte le nombre de clusters en cours d'exécution comme décrit dans les sections suivantes.
Lorsque Minimum Clusters et Maximum Clusters sont différents :
Augmenter Maximum Clusters : Cette action élève la limite supérieure du nombre de clusters. Le nombre actuel de clusters en cours d'exécution ne change pas tant que la charge de travail ne nécessite pas davantage de ressources.
Diminuer Maximum Clusters : Si le nombre actuel de clusters en cours d'exécution est supérieur à la nouvelle valeur maximale, les clusters excédentaires cessent d'accepter de nouvelles requêtes. Le système réduit le nombre de clusters en cours d'exécution une fois les requêtes qu'ils traitent terminées.
Augmenter Minimum Clusters : De nouveaux clusters sont créés immédiatement pour atteindre le nombre minimal spécifié.
Diminuer Minimum Clusters : Si le nombre actuel de clusters en cours d'exécution est supérieur à la nouvelle valeur minimale, AnalyticDB for MySQL surveille en continu votre charge de requêtes sur une fenêtre de 5 minutes. Le système effectue une mise à l'échelle vers le bas jusqu'à la valeur minimale configurée uniquement lorsque la charge de travail remplit les conditions de mise à l'échelle vers le bas.
Lorsque Minimum Clusters et Maximum Clusters sont identiques :
Augmenter à la fois Maximum Clusters et Minimum Clusters : Le nombre de clusters est immédiatement augmenté à la nouvelle valeur.
Diminuer à la fois Maximum Clusters et Minimum Clusters : Les clusters excédentaires cessent d'accepter de nouvelles requêtes. Ils sont mis à l'échelle vers le bas une fois leurs requêtes actuelles terminées.
Annexe : Correspondance entre la taille du cluster et les spécifications Spark
Les spécifications et le nombre de pilotes Spark et d'exécuteurs Spark dépendent du ratio CPU/mémoire sélectionné. Lorsque vous activez la fonctionnalité multi-cluster, vous pouvez ajouter le paramètre spark.adb.warehouse.instance.spec dans la section Spark Configuration pour définir le ratio CPU/mémoire pour les spécifications du pilote Spark et de l'exécuteur Spark.
Les valeurs valides pour le paramètre spark.adb.warehouse.instance.spec sont :
MEMORY (par défaut) : Utilise un ratio CPU/mémoire de
1:8pour les pilotes Spark et les exécuteurs Spark.GENERAL : Utilise un ratio CPU/mémoire de
1:4pour les pilotes Spark et les exécuteurs Spark.COMPUTE : Utilise un ratio CPU/mémoire de
1:2pour les pilotes Spark et les exécuteurs Spark.
Le tableau suivant présente la correspondance entre la taille du cluster et les spécifications du pilote Spark et de l'exécuteur Spark.
|
Taille du cluster |
MEMORY (ratio CPU/mémoire 1:8) |
GENERAL (ratio CPU/mémoire 1:4) |
COMPUTE (ratio CPU/mémoire 1:2) |
|||
|
Spécifications du pilote Spark |
Spécifications de l'exécuteur Spark |
Spécifications du pilote Spark |
Spécifications de l'exécuteur Spark |
Spécifications du pilote Spark |
Spécifications de l'exécuteur Spark |
|
|
16 ACU (3X-Small) |
4 cœurs, 32 Go |
3 × 2 cœurs, 16 Go |
4 cœurs, 16 Go |
3 × 4 cœurs, 16 Go |
4 cœurs, 8 Go |
4 × 4 cœurs, 8 Go |
|
24 ACU (2X-Small) |
8 cœurs, 64 Go |
1 × 8 cœurs, 64 Go |
8 cœurs, 32 Go |
4 × 4 cœurs, 16 Go |
8 cœurs, 16 Go |
11 × 2 cœurs, 4 Go |
|
36 ACU (X-Small) |
8 cœurs, 64 Go |
2 × 8 cœurs, 64 Go |
8 cœurs, 32 Go |
7 × 4 cœurs, 16 Go |
8 cœurs, 16 Go |
18 × 2 cœurs, 4 Go |
|
72 ACU (Small) |
16 cœurs, 128 Go |
4 × 8 cœurs, 64 Go |
16 cœurs, 64 Go |
7 × 8 cœurs, 32 Go |
16 cœurs, 32 Go |
37 × 2 cœurs, 4 Go |
|
144 ACU (Medium) |
16 cœurs, 128 Go |
10 × 8 cœurs, 64 Go |
16 cœurs, 64 Go |
16 × 8 cœurs, 32 Go |
16 cœurs, 32 Go |
41 × 4 cœurs, 8 Go |
|
240 ACU (Large) |
16 cœurs, 128 Go |
9 × 16 cœurs, 128 Go |
16 cœurs, 64 Go |
28 × 8 cœurs, 32 Go |
16 cœurs, 32 Go |
71 × 4 cœurs, 8 Go |
|
360 ACU |
16 cœurs, 128 Go |
14 × 16 cœurs, 128 Go |
16 cœurs, 64 Go |
43 × 8 cœurs, 32 Go |
16 cœurs, 32 Go |
54 × 8 cœurs, 16 Go |
|
480 ACU (X-Large) |
32 cœurs, 256 Go |
18 × 16 cœurs, 128 Go |
32 cœurs, 128 Go |
56 × 8 cœurs, 32 Go |
32 cœurs, 64 Go |
71 × 8 cœurs, 16 Go |
|
864 ACU (2X-Large) |
64 cœurs, 512 Go |
32 × 16 cœurs, 128 Go |
32 cœurs, 128 Go |
52 × 16 cœurs, 64 Go |
32 cœurs, 64 Go |
131 × 8 cœurs, 16 Go |