Comment résoudre les problèmes et une utilisation intensive du CPU sur mes instances DocumentDB ?

Date de la dernière mise à jour : 17/06/2020

Je fais face à une utilisation intensive du CPU sur mes instances Amazon DocumentDB (avec compatibilité MongoDB). Comment résoudre une utilisation intensive du CPU ?

Brève description

L'utilisation du CPU sur vos instances Amazon DocumentDB peut augmenter pour les raisons suivantes :

  • Charges de travail lourdes lancées par l'utilisateur
  • Requêtes non efficaces
  • Exploitation du rédacteur ou de l'instance de base de données spécifique dans le cluster au lieu de l'équilibrage de la charge au sein du cluster.

Utilisez les ressources suivantes pour résoudre les problèmes de performances du CPU :

Solution

Fractionner une charge de travail à l'aide de replicaSet

Si vous avez un cluster DocumentDB avec plusieurs instances de base de données, vérifiez si l'utilisation du CPU du rédacteur est élevée et si les lecteurs restent inactifs. Si c'est le cas, le rédacteur est surchargé.

Pour résoudre ce problème, fractionnez la charge de travail à l'aide de replicaSet ou utilisez plusieurs groupes de connexions pour acheminer les requêtes de lecture vers les instances de base de données du lecteur.

Spécifier le readPreference pour votre connexion

Lorsque vous vous connectez en tant qu'ensemble de réplicas, vous pouvez spécifier readPreference pour la connexion. Si vous spécifiez une préférence de lecture de secondaryPreferred, le client achemine les requêtes de lecture vers vos réplicas et écrit les requêtes vers votre instance de base de données principale. L'exemple suivant montre la chaîne de connexion dans Python :

## Create a MongoDB client, open a connection to Amazon DocumentDB as a
##   replica set and specify the read preference as secondary preferred

Remarque : les lectures à partir d'un réplica en lecture sont cohérentes à terme.

Ajouter une ou plusieurs instances de lecteur au cluster

Si vous avez un cluster DocumentDB avec une seule instance de base de données (rédacteur uniquement), ajoutez une ou plusieurs instances de base de données de lecteur au cluster. Ensuite, utilisez readPreference=secondaryPreferred pour gérer la charge efficacement.

Utiliser Profiler pour identifier les requêtes lentes

Si la charge est répartie uniformément entre tous les réplicas, utilisez Profiler pour identifier les requêtes lentes au fil du temps.

Augmenter la classe d'instance de vos instances de base de données

Vous pouvez également augmenter la classe d'instance des instances de base de données du cluster DocumentDB pour gérer la charge de travail.

Remarque : augmenter la classe d'instance augmente le coût. Pour plus d'informations, consultez la tarification de DocumentDB.


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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?