Pour vous préparer à un pic d'activité commercial à court terme ou à une modification du schéma de base de données (en particulier une modification d'index), utilisez la fonctionnalité de rejeu de trafic et de test de charge. Cette fonctionnalité vous aide à déterminer si votre instance de base de données doit être mise à l'échelle et vérifie ses performances dans un scénario métier réel, réduisant ainsi le risque d'échecs après le déploiement. De plus, si une base de données tombe en panne et que vous ne parvenez pas à en identifier la cause, vous pouvez utiliser une base de données clonée pour reproduire la défaillance et en localiser l'origine.
Prérequis
-
Bases de données source prises en charge :
RDS MySQL
-
PolarDB for MySQL
RemarqueLes instances PolarDB for MySQL Enterprise Edition single-node ne sont pas prises en charge.
-
Instances de base de données de destination prises en charge :
RDS MySQL.
PolarDB for MySQL.
PolarDB-X 2,0.
Les instances de base de données source et de destination sont connectées à DAS. Pour plus d'informations, consultez Connecter une instance de base de données Alibaba Cloud à DAS.
Pour l'instance de base de données source, DAS Enterprise Edition et la fonctionnalité SQL Explorer doivent être activés. La durée de conservation des index de journaux doit être de 7 jours.
Pour l'instance de base de données de destination, DAS Enterprise Edition et la fonctionnalité SQL Explorer doivent être activés. La durée de conservation des index de journaux doit être de 7 jours.
Scénarios
Déterminez si votre instance de base de données actuelle doit être mise à l'échelle pour gérer les pics de trafic à court terme à venir.
Après une évolution du schéma de base de données, en particulier après une modification d'index, validez son effet dans un scénario de service réel. Cela réduit le risque d'échecs après la mise en ligne de la modification.
Si une base de données tombe en panne et que vous ne trouvez pas la cause, utilisez la fonctionnalité de test de charge intelligent pour reproduire le scénario d'échec sur une base de données clonée et identifier la cause.
Notes d'utilisation
-
Pour réduire l'impact de la latence réseau sur le test de charge, le client de test de charge et l'instance de destination doivent se trouver dans la même région.
RemarqueNous vous recommandons de placer le client de test de charge et l'instance de destination dans le même VPC.
Avant d'effectuer le test de charge, vérifiez la connectivité entre le client de test de charge et l'instance de destination afin de garantir que le trafic peut être envoyé.
Facturation
Pour obtenir des informations sur les frais liés à DAS Enterprise Edition, consultez Facturation.
-
Après la création d'une tâche de test de charge, les éléments suivants sont facturés :
Si vous sélectionnez Restore by Backup pour la migration des données, le système crée automatiquement une instance de base de données en paiement à l'utilisation basée sur le moteur de base de données de destination que vous avez sélectionné. Le système active également la dernière version de DAS Enterprise Edition pour la nouvelle instance, avec un stockage de 30 jours pour les journaux SQL et un stockage de 7 jours pour les index de journaux.
Si vous sélectionnez DAS Automatic Purchase and Deployment dans la section Advanced Settings, le système achète une instance ECS en paiement à l'utilisation d'un type d'instance approprié, en fonction du QPS de la base de données source et du multiplicateur de vitesse de rejeu. Pour plus d'informations, consultez Aperçu de la facturation ECS.
RemarqueÉtant donné que le système achète des instances en paiement à l'utilisation, vous devez les supprimer manuellement une fois la tâche de test de charge terminée pour éviter des frais inutiles.
Procédure
Connectez-vous à la console DAS.
-
Accédez à la page Rejeu de trafic et test de charge.
Vous pouvez accéder à la page Rejeu de trafic et test de charge de l'une des manières suivantes :
Dans le volet de navigation de gauche, cliquez sur Tools > Traffic Replay & Stress Testing.
-
Accédez à la page depuis la page des détails de l'instance.
Dans le volet de navigation de gauche, cliquez sur .
Recherchez l'instance cible et cliquez sur l'ID de l'instance pour ouvrir la page des détails de l'instance.
Dans le volet de navigation de gauche, cliquez sur Request Analysis > SQL Explorer and Audit. Ensuite, sur la page qui s'affiche, cliquez sur Traffic Playback and Stress Test.
Sur la page de liste des tâches, cliquez sur Create Task dans le coin supérieur droit.
-
Dans la boîte de dialogue Create Task, définissez les paramètres suivants.
Définissez Task Type sur Cloud Instance Playback et saisissez un Task Name.
-
Dans la section Source Information, définissez les paramètres suivants et cliquez sur Next.
Configuration
Description
Instance Source
Sélectionnez Alibaba Cloud Database.
Database Engine
Le moteur de votre instance de base de données. Les options incluent :
-
MySQL : une instance RDS MySQL.
-
PolarDB for MySQL : une instance PolarDB for MySQL.
-
PolarDB-X : une instance PolarDB-X 2,0.
Source Instance
Sélectionnez l'ID de l'Source Instance.
Advanced Settings
Batch Stress Testing
La tâche est suspendue après la phase de préparation. Vous pouvez ensuite sélectionner plusieurs tâches dans la liste des tâches et démarrer le test de charge pour toutes simultanément.
SQL Type
Sélectionnez un ou plusieurs types SQL à tester.
Database Account, Password
Le compte et le mot de passe de la base de données source.
RemarqueCliquez sur Obtain Database pour récupérer la liste des bases de données. Si vous souhaitez effectuer un test de charge sur toutes les bases de données, vous n'avez pas besoin d'en sélectionner. Si vous souhaitez tester des bases de données spécifiques, vous pouvez en sélectionner jusqu'à cinq.
-
-
Dans la section Generation Method of Schema and Data of Destination Database, définissez les paramètres suivants.
Configuration
Description
Database Engine
Le moteur de l'instance de base de données de destination. Les types suivants sont pris en charge :
-
MySQL : une instance RDS MySQL.
-
PolarDB for MySQL : une instance PolarDB for MySQL.
-
PolarDB-X : une instance PolarDB-X 2,0.
RemarquePolarDB-X 2,0 est pris en charge uniquement dans les régions Chine (Hangzhou), Chine (Shanghai), Chine (Beijing), Chine (Shenzhen) et Singapour.
Benchmark Data Migration
Sélectionnez une méthode de migration en fonction du fait que les données de référence de l'instance source ont été migrées vers l'instance de destination :
-
Restore by Backup : L'instance de destination est clonée à partir de l'instance source en fonction d'un point dans le temps ou d'un ensemble de sauvegarde.
RemarqueDAS achète automatiquement une instance en paiement à l'utilisation avec les mêmes spécifications que l'instance source. La dernière version de DAS Enterprise Edition et la fonctionnalité SQL Explorer sont activées par défaut pour l'instance, la durée de conservation des index de journaux est définie sur 7 jours et les données de sauvegarde sont restaurées sur l'instance.
-
Data Migration Completed : Le schéma de table et les données de l'instance source de la plage de temps de rejeu de trafic ont été synchronisés avec l'instance de destination.
RemarqueLe schéma et les données de l'instance de destination doivent être cohérents avec ceux de l'instance source pour garantir que le trafic de test de charge s'exécute comme prévu.
-
Enter DTS Task ID : Une tâche de migration de données a été créée dans la console DTS pour synchroniser les données de l'instance source vers l'instance de destination.
RemarquePour plus d'informations sur la migration de données à l'aide de DTS, consultez Migration de données.
-
Create DTS Migration Task : Créez directement une tâche de migration de données sans accéder à la console DTS.
Remarque-
Si l'instance source est une base de données Alibaba Cloud, vous pouvez sélectionner l'une des quatre méthodes. Nous vous recommandons de sélectionner Restore by Backup car le système achète automatiquement une instance en paiement à l'utilisation avec les mêmes spécifications que l'instance source et restaure les données sur cette instance après la création de la tâche de test de charge.
-
Si l'instance source est une base de données auto-gérée, vous ne pouvez sélectionner que Data Migration Completed, Enter DTS Task ID ou Create DTS Migration Task.
Restore Mode
Sélectionnez un mode de restauration. Vous pouvez sélectionner l'un des modes suivants selon vos besoins :
-
By Time Point
-
By Backup Set
Remarque-
Ce paramètre est requis lorsque Benchmark Data Migration est défini sur Restore by Backup.
-
Si vous définissez Restore Mode sur By Backup Set, vous devez accorder des autorisations au DAS Service-linked Role. Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
Select Restore Time/Backup Set
Sélectionnez une heure de restauration ou un ensemble de sauvegarde en fonction du Restore Mode sélectionné.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Restore by Backup.
Migration Task ID
L'ID de la tâche de migration de données DTS qui synchronise les données de l'instance source vers l'instance de destination.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Enter DTS Task ID.
DTS Migration Task Specifications
Sélectionnez les spécifications de la tâche de migration DTS.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Create DTS Migration Task.
Destination Instance
Sélectionnez l'instance de destination. Par défaut, le système accède au endpoint principal de l'instance de destination.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Data Migration Completed, Enter DTS Task ID ou Create DTS Migration Task.
Privileged Account of Destination Instance
Le nom d'utilisateur et le mot de passe du compte privilégié pour l'instance de destination.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Data Migration Completed, Enter DTS Task ID ou Create DTS Migration Task.
Privileged Account of Source Instance
Le nom d'utilisateur et le mot de passe du compte privilégié pour l'instance source.
RemarqueCe paramètre est requis lorsque Benchmark Data Migration est défini sur Restore by Backup ou Create DTS Migration Task.
-
-
Dans la section Stress Testing Basic Settings, définissez les paramètres suivants.
Configuration
Description
Select Playback Traffic
Sélectionnez la plage de temps pour le rejeu de trafic.
RemarqueLa fonctionnalité SQL Explorer and Audit doit être activée pour l'instance source pendant cette plage de temps.
Playback Speed
Le taux auquel le trafic de l'instance source est rejoué sur l'instance de destination. Par exemple, une valeur de 1 indique la vitesse d'origine. Le taux de rejeu doit être un entier positif compris entre 1 et 10.
RemarqueSi la vitesse de rejeu que vous avez définie dépasse la vitesse maximale prise en charge par le type d'instance de destination, la tâche de test de charge s'exécute à la vitesse maximale prise en charge.
-
Dans la section Advanced Settings, sélectionnez une ECS that Deploys Stress Testing Program.
Vous pouvez sélectionner DAS Automatic Purchase and Deployment. Le système achète alors une instance ECS en paiement à l'utilisation d'un type d'instance approprié, en fonction du QPS de l'instance source et du multiplicateur de vitesse de rejeu.
Vous pouvez également cliquer sur Add pour sélectionner une instance ECS existante, générer la commande de déploiement et l'exécuter sur cette instance.
Cliquez sur Next.
Une fois la vérification réussie, cliquez sur OK pour créer la tâche de test de charge.
Afficher les résultats
Une fois la tâche de test de charge créée, revenez à la page de liste des tâches pour afficher les détails de la tâche.
-
Dans la colonne Actions, vous pouvez effectuer les opérations suivantes :
Cliquez sur Details pour accéder à la page Basic Task Information afin de consulter l'état d'exécution et le rapport de la tâche de test de charge.
Pour terminer prématurément la tâche de test de charge, cliquez sur Terminate.
Cliquez sur Delete pour supprimer la tâche de test de charge que vous avez créée.
-
Dans la section , vous pouvez ajuster dynamiquement les paramètres pendant l'exécution de la tâche. Le tableau suivant décrit les paramètres.
Paramètre
Description
Threads
Le nombre de threads de rejeu. Cette valeur est calculée automatiquement en fonction du CPU de l'hôte de rejeu : max(3, 2*runtime.NumCPU()-5).
BatchSize
La taille du lot pour l'analyse. Les instructions SQL sont traitées par lots lors de l'analyse. Si une erreur de mémoire insuffisante se produit, vous pouvez ajuster ce paramètre. Valeur par défaut : 100000.
Debug
Indique s'il faut produire des journaux de débogage.
ConnectPoolSize
La taille du pool de connexions.
ConnectTimeout
Le délai d'attente de connexion. Unité : secondes. Valeur par défaut : 3.
SocketTimeout
Le délai d'attente d'exécution. Unité : secondes. Valeur par défaut : 10.
SkipDuplicateErrorSql
Si activé, le système ignore les modèles d'instructions SQL qui provoquent des échecs d'exécution répétés ou des délais d'attente.
SqlCountLimit
La taille de dispersion des threads. Une valeur plus petite réduit la fusion des threads mais peut entraîner une pression de lecture élevée, provoquant des délais d'attente et affectant la progression du rejeu.
Étapes suivantes
Une fois la tâche de test de charge terminée, accédez à la page Intelligent Stress Testing Details. Si aucun autre test n'est nécessaire, libérez les instances ECS et de base de données correspondantes pour éviter des frais inutiles.
Si vous avez activé manuellement SQL Explorer and Audit pour l'instance source, désactivez-la une fois le test de charge terminé. Pour plus d'informations, consultez Désactiver SQL Explorer and Audit.
Si vous devez mettre à l'échelle votre instance de base de données pour un pic d'activité commercial à court terme à venir, vous pouvez activer la mise à l'échelle automatique des performances ou l'Auto Scaling planifié en fonction du type d'instance.