Sélection de la meilleure taille pour une instance de réplication - AWS Service de Migration de Base de Données

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sélection de la meilleure taille pour une instance de réplication

Le choix de l'instance de réplication appropriée dépend de plusieurs facteurs propres à votre cas d'utilisation. Pour mieux comprendre comment les ressources d'instance de réplication sont utilisées, consultez la discussion suivante. Elle couvre le scénario courant d'une tâche de chargement complet + CDC.

Lors d'une tâche de chargement complet, AWS DMS charge les tables individuellement. Par défaut, huit tables sont chargées à la fois. AWS DMS capture les modifications continues apportées à la source pendant une tâche de chargement complet afin que les modifications puissent être appliquées ultérieurement sur le point de terminaison cible. Ces modifications sont mises en cache en mémoire ; si la mémoire disponible est épuisée, les modifications sont mises en cache sur le disque. Lorsqu'une tâche de chargement complet est terminée pour une table, applique AWS DMS immédiatement les modifications mises en cache à la table cible.

Une fois que toutes les modifications mises en cache pour une table ont été appliquées, le point de terminaison cible se trouve dans un état transactionnel cohérent. À ce stade, la cible est synchronisée avec le point de terminaison source par rapport aux dernières modifications mises en cache. AWS DMS commence ensuite la réplication en cours entre la source et la cible. Pour ce faire, AWS DMS prend les opérations de modification des journaux de transactions source et les applique à la cible de manière cohérente sur le plan des transactions. (Ce processus suppose que l'option Appliquer optimisée par lots n'est pas sélectionnée). AWS DMS diffuse les modifications en cours via la mémoire de l'instance de réplication, si possible. Sinon, AWS DMS écrit les modifications sur le disque de l'instance de réplication jusqu'à ce qu'elles puissent être appliquées à la cible.

Vous pouvez contrôler la façon dont l'instance de réplication gère le traitement des modifications et la façon dont la mémoire est utilisée dans ce processus. Pour plus d'informations sur la manière d'ajuster le traitement des modifications, consultez Paramètres de réglage du traitement des modifications.

Facteurs à prendre en compte

La mémoire et l’espace disque sont des facteurs clés pour la sélection d’une instance de réplication appropriée à votre cas d’utilisation. Vous trouverez ci-dessous une présentation des caractéristiques des cas d’utilisation à analyser pour choisir une instance de réplication.

  • Taille des tables et de la base de données

    Le volume de données permet de déterminer la configuration des tâches afin d’optimiser les performances de chargement complet. Par exemple, pour deux schémas de 1 To, vous pouvez partitionner les tables en quatre tâches de 500 Go et les exécuter en parallèle. Le parallélisme possible dépend de la ressource CPU disponible dans l’instance de réplication. C’est pourquoi il est judicieux de connaître la taille de votre base de données et de vos tables afin d’optimiser les performances de chargement complet. Cela permet de déterminer le nombre de tâches que vous pouvez éventuellement effectuer.

  • Objets volumineux

    Les types de données présents dans l’étendue de migration peuvent affecter les performances. Les objets volumineux (LOB) ont notamment un impact sur les performances et la consommation de mémoire. Pour migrer une valeur LOB, AWS DMS exécute un processus en deux étapes. Tout d'abord, AWS DMS insère la ligne dans la cible sans la valeur LOB. Ensuite, AWS DMS met à jour la ligne avec la valeur LOB. Cela a un impact sur la mémoire, il est donc important d’identifier les colonnes LOB dans la source et d’analyser leur taille.

  • Fréquence de chargement et taille des transactions

    La fréquence de chargement et le nombre de transactions par seconde (TPS) influencent l’utilisation de la mémoire. Un nombre élevé du TPS ou des activités de langage de manipulation de données (DML) entraîne une utilisation importante de mémoire. Cela se produit parce que DMS met en cache les modifications jusqu’à ce qu’elles soient appliquées à la cible. Pendant la CDC, cela entraîne un échange (écriture sur le disque physique en raison d’un débordement de mémoire), qui génère de la latence.

  • Clés de table et intégrité référentielle

    Les informations relatives aux clés de la table déterminent le mode CDC (application par lots ou application transactionnelle) que vous utilisez pour migrer les données. En général, l’application transactionnelle est plus lente que l’application par lots. Pour les transactions de longue durée, il peut y avoir de nombreuses modifications à migrer. Lorsque vous utilisez l'application transactionnelle, il AWS DMS peut être nécessaire de disposer de plus de mémoire pour stocker les modifications par rapport à l'application par lots. Si vous migrez des tables sans clés primaires, l’application par lots échoue et la tâche DMS passe en mode d’application transactionnelle. Lorsque l'intégrité référentielle est active entre les tables pendant le CDC, AWS DMS utilise l'application transactionnelle par défaut. Pour plus d’informations sur l’application par lots par rapport à l’application transactionnelle, consultez Comment puis-je utiliser la fonctionnalité d’application par lots DMS pour améliorer les performances de réplication CDC ?.

Utilisez ces métriques pour déterminer si l’instance de réplication doit être optimisée pour le calcul ou pour la mémoire.

Problèmes courants

Vous pouvez être confronté aux problèmes courants suivants qui entraînent une contention des ressources sur l’instance de réplication lors de la migration. Pour en savoir plus sur les métriques de l’instance de réplication, consultez Métriques des instances de réplication.

  • Si la mémoire d’une instance de réplication devient insuffisante, cela entraîne l’écriture de données sur le disque. La lecture depuis le disque peut entraîner une latence, que vous pouvez éviter en dimensionnant l’instance de réplication avec suffisamment de mémoire.

  • La taille de disque attribuée à l’instance de réplication peut être inférieure à celle requise. La taille du disque est utilisée quand les données en mémoire débordent ; elle est également utilisée pour stocker les journaux de tâches. Le nombre maximal d’IOPS en dépend également.

  • L’exécution de plusieurs tâches ou de tâches présentant un parallélisme élevé affecte la consommation de CPU de l’instance de réplication. Cela ralentit le traitement des tâches et génère de la latence.

Bonnes pratiques

Tenez compte de ces deux bonnes pratiques les plus courantes lors du dimensionnement d’une instance de réplication. Pour plus d’informations, consultez Bonnes pratiques pour AWS Database Migration Service.

  1. Dimensionnez votre charge de travail et déterminez si elle est gourmande en ressources informatiques ou en mémoire. Sur cette base, vous pouvez déterminer la classe et la taille de l’instance de réplication :

    • AWS DMS traite les LOB en mémoire. Cette opération nécessite une quantité importante de mémoire.

    • Le nombre de tâches et le nombre de threads ont un impact sur la consommation de CPU. Évitez d’en utiliser plus de huit MaxFullLoadSubTasks pendant l’opération de chargement complet.

  2. Augmentez l’espace disque attribué à l’instance de réplication lorsque la charge de travail est élevée pendant le chargement complet. Cela permet à l’instance de réplication d’utiliser le nombre maximal d’IOPS qui lui est attribué.

Les directives précédentes ne couvrent pas tous les scénarios possibles. Il est important de prendre en compte les spécificités de votre cas d’utilisation particulier lorsque vous déterminez la taille de votre instance de réplication.

Les tests précédents montrent que le CPU et la mémoire varient avec différentes charges de travail. En particulier, les objets LOB affectent la mémoire, et le nombre de tâches ou le parallélisme affectent le CPU. Une fois que votre migration est en cours d’exécution, surveillez le CPU, la mémoire libérable, le stockage disponible et les IOPS de votre instance de réplication. En fonction des données que vous collectez, vous pouvez dimensionner votre instance de réplication à la hausse ou à la baisse, selon les besoins.