Que sont les fichiers d’échange et pourquoi consomment-ils de l'espace sur mon instance AWS DMS ?

Dernière mise à jour : 28/07/2022

L'espace de stockage de mon instance DB AWS Database Migration Service (AWS DMS) est utilisé par les fichiers d'échange qui ont été générés sur mon instance. Que sont les fichiers d’échange et comment puis-je réduire la génération de fichiers d'échange ?

Courte description

Dans AWS DMS, le composant SORTER met en cache les modifications en cours provenant de la source. Le composant effectue cette opération pour gérer les actions telles que la fusion des transactions, le filtrage et les transformations de données avant de les appliquer à la cible.

Si le traitement de la source surpasse l'application de la cible, la cible ne peut pas gérer les modifications entrantes. Ou, si les transactions longues dépassent l'allocation de mémoire maximale (MemoryLimitTotal) et la durée (MemoryKeepTime), les transactions en mémoire sont transférées sur le disque de l'instance de réplication, appelé fichiers d'échange ou de tri.

Les fichiers d'échange de ce type sont différents des fichiers d'échange du système d'exploitation créés lorsque la mémoire du serveur n'est pas suffisante pour le traitement. Ces données ne sont donc pas incluses dans la métrique SwapUsage d'Amazon CloudWatch.

Solution

Vous pouvez voir un message similaire à celui-ci dans vos journaux des tâches :

"[SORTER] I : La lecture de la source est interrompue. Le stockage total utilisé par les fichiers d'échange a dépassé la limite 1048576000 octets (sorter_transaction.c:110) 00000849 : 2021-04-28T07:19:20:987696 [SORTER] I : La lecture de la source reprend (sorter_transaction.c:116)]"

Il s'agit d'un message d'information et non d'une erreur. Ce message s'affiche lorsque les fichiers d'échange utilisés par le composant AWS DMS SORTER atteignent une limite de taille de 1 Go (limite fixée par défaut). Les versions 3.4.2 et ultérieures d'AWS DMS incluent une fonctionnalité qui empêche les scénarios de stockage plein en limitant la quantité maximale de fichiers d'échange que vous pouvez avoir sur les volumes de stockage d'une instance de réplication. Ce message s'affiche donc lorsque les fichiers d'échange utilisés par le composant DMS SORTER atteignent la limite de 1 Go.

Lorsque cette limite de 1 Go est atteinte, le composant SORTER interrompt SOURCE CAPTURE. AWS DMS applique ensuite les modifications des fichiers d'échange à la base de données cible. Une fois les modifications échangées depuis le disque appliquées ou lorsque le fichier d'échange tombe en dessous de 1 Go, AWS DMS reprend la capture de la source.

Remarque : Dans ce cas, la tâche continue de s'exécuter. Seule SOURCE CAPTURE est suspendue.

Réduire la génération de fichiers d'échange

Utilisez ces bonnes pratiques pour réduire ou éviter la génération de fichiers d'échange sur votre instance AWS DMS :

  • Vérifiez les causes courantes d'une latence cible élevée sur votre tâche AWS DMS :
    • Il n'existe pas de clés primaires ni d'index dans la cible
    • Il existe des goulots d'étranglement de ressources dans la cible.
    • Il existe des goulots d'étranglement de ressources dans l'instance de réplication.
    • Il existe un problème de réseau entre l'instance de réplication et la cible
  • Utilisez le mode d'application par lots et ParallelApplyThreads pour améliorer l'application des cibles, en fonction de votre type de moteur.
  • Si vous rencontrez des transactions de longue durée à la source, utilisez des validations fréquentes dans la base de données source pour atténuer le problème.
  • Si de la mémoire est disponible sur l'instance de réplication, vous pouvez augmenter MemoryLimitTotal et MemoryKeepTime afin que les modifications restent en mémoire plus longtemps avant d'être échangées sur le disque. Assurez-vous d'augmenter ces deux paramètres, car lorsqu'une limite est atteinte, AWS DMS échange les modifications sur le disque.

Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?