Comment puis-je résoudre les problèmes d'utilisation élevée du processeur sur un ou plusieurs agents d'un cluster Amazon MSK ?
Je souhaite résoudre un problème d'utilisation élevée du processeur sur un ou plusieurs agents de mon cluster Amazon Managed Streaming pour Apache Kafka (Amazon MSK).
Résolution
L'utilisation totale du processeur pour un cluster Amazon MSK est la somme des valeurs suivantes :
- Pourcentage de processeur dans l'espace utilisateur défini par la métrique CpuUser
- Pourcentage de processeur dans l'espace du noyau défini par CpuSystem
Il est recommandé de maintenir l'utilisation totale du processeur sous 60 % afin que 40 % du processeur de votre cluster soit disponible. Apache Kafka peut redistribuer la charge du processeur entre les agents du cluster selon les besoins. Par exemple, lorsqu’une erreur de l’agent se produit, Amazon MSK peut utiliser le processeur disponible pour effectuer une maintenance automatique, telle que des correctifs.
Il est possible que votre cluster Amazon MSK sollicite une grande quantité de ressources du processeur pour l'une des raisons suivantes :
- Le trafic entrant ou sortant est élevé.
- Vous dépassez le nombre de partitions par agent et vous surchargez le cluster.
- Vous utilisez un type d'instance T.
Le trafic entrant ou sortant est élevé
Pour surveiller le trafic entrant et sortant vers le cluster, utilisez les métriques BytesInPersec et BytesOutPerSec d'Amazon CloudWatch. Si ces métriques relatives à un agent ont des valeurs élevées ou sont biaisées, l’agent peut subir une utilisation élevée du processeur.
Les agents peuvent être confrontés à un trafic élevé lorsque les rubriques à fort volume présentent une distribution inégale des partitions. Ou bien, le producteur ne distribue pas les données de manière uniforme sur toutes les partitions. Pour résoudre ce problème, vérifiez la clé de partitionnement du producteur et mettez à jour la configuration du cluster. Puis, configurez la clé de partition afin qu'une partition ne reçoive pas plus de données que les autres.
Vous pouvez également être confronté à un trafic élevé lorsque le groupe de consommateurs engage des compensations très fréquemment. Le trafic provenant des engagements de compensation se répercute sur l’agent. Pour résoudre ce problème, réduisez le nombre de groupes de consommateurs ou mettez à niveau la taille de votre instance.
Le nombre de partitions par agent dépasse la valeur recommandée
Si le nombre de partitions par agent dépasse la valeur recommandée, votre cluster est surchargé. Lorsque votre cluster est surchargé, vous ne pouvez pas effectuer les actions suivantes :
- Mise à jour de la configuration du cluster.
- Mise à jour de la version d'Apache Kafka pour le cluster.
- Mise à jour du cluster vers un type de courtier plus petit.
- Association d’un secret AWS Secrets Manager à un cluster avec authentification SASL/SCRAM.
Lorsque vous disposez d’un nombre excessif de partitions, l’utilisation du processeur peut être élevée et une dégradation des performances peut être observée.
Pour résoudre ce problème, procédez comme suit :
- Supprimez les rubriques obsolètes ou inutilisées pour ramener le nombre de partitions dans la limite recommandée. Pour identifier la rubrique inutilisée, activez la surveillance au niveau de la rubrique et vérifiez les métriques BytesInPerSec et BytesOutPerSec au niveau de la rubrique pour déterminer si cette dernière est traversée par du trafic. Si aucun trafic ne transite par la rubrique, vous pouvez supprimer les rubriques inutilisées.
- Augmentez verticalement le type d'instance d’agent à un type pouvant prendre en charge le nombre de partitions nécessaire. Ajoutez également d'autres agents et réattribuez les partitions.
Remarque : Vous devez exécuter la commande kafka-reassign-partitions pour réattribuer les partitions. Amazon MSK ne réattribue pas automatiquement les partitions lorsque vous ajoutez des agents.
Vous utilisez un type d'instance T
Les types d’instances T présentent des performances de base avec certaines fonctionnalités extensibles. Ces instances vous offrent des performances de base de 20 % d'utilisation du processeur. Si vous dépassez cette valeur, le type d'instance utilise les crédits de processeur. Si l'utilisation est inférieure à 20 %, les crédits de processeur sont accumulés.
Assurez-vous de surveiller la métrique de solde de crédit du processeur pour les instances extensibles dans Amazon CloudWatch.
Surveillez l'utilisation du processeur de référence et le solde de crédit de tout cluster qui s'exécute sur des types d'instances T. Si l’utilisation du processeur est supérieure à la valeur de référence et les crédits sont épuisés, les performances du cluster sont compromises.
Autres causes possibles
Le nombre de connexions au client est élevé
Un pic de l'une des métriques Amazon CloudWatch suivantes peut entraîner une augmentation de l'utilisation du processeur de l’agent :
- ConnectionCount
- ConnectionCreationRate
- ConnectionCloseRate
Pour résoudre ce problème, surveillez ces métriques sur Amazon CloudWatch. Puis, réduisez le nombre de connexions selon vos besoins, ou augmentez le type d’agent.
Amazon MSK détecte et répare les erreurs d'un agent
Lorsqu'Amazon MSK détecte une défaillance d'un agent et effectue une opération de maintenance automatique telle qu'un correctif, l'utilisation du processeur augmente. Dès que Amazon MSK a terminé l'opération de cluster, l'utilisation du processeur revient à des niveaux d'utilisation normaux.
Un utilisateur demande une modification du type d’agent ou une mise à niveau de version
Lorsqu'un utilisateur demande une modification du type d’agent ou une mise à niveau de version, Amazon MSK déploie des flux de travail continus qui déconnecte un seul agent à la fois. En cas de déconnexion d’agents disposant de partitions principales, Apache Kafka réattribue la direction des partitions afin de redistribuer le travail aux autres agents du cluster. Surveillez l'utilisation du processeur par ces agents et assurez-vous que votre cluster dispose d'une capacité de processeur suffisante à gérer les événements opérationnels.
L'utilisation du processeur par un ou plusieurs agents est élevée du fait d’une distribution asymétrique des données
L'utilisation du processeur par un ou plusieurs agents peut être élevée du fait d’une distribution asymétrique des données. Par exemple, si vous écrivez à deux agents sur six et que ces derniers sont les plus sollicités, ils constatent une utilisation plus élevée du processeur. Pour résoudre ce problème, utilisez la technique du tourniquet (round-robin) en vue d’une répartition correcte des partitions du cluster.
Pour voir comment le contrôleur de cluster Apache Kafka répartit les partitions sur le cluster, exécutez la commande suivante :
bin/kafka-topics.sh -bootstrap-server $MYBROKERS --describe --topic my-topic
Exemple de sortie :
Topic:my-topic PartitionCount:7 ReplicationFactor:3 Configs: Topic: my-topic Partition: 0 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2 Topic: my-topic Partition: 1 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3 Topic: my-topic Partition: 2 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1 Topic: my-topic Partition: 3 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 Topic: my-topic Partition: 4 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1 Topic: my-topic Partition: 5 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Vous avez activé la surveillance ouverte
Si vous activez la surveillance ouverte avec Prometheus et que l'intervalle de récupération est faible, cela peut entraîner l’émission d’un nombre élevé de métriques, puis une augmentation de l'utilisation du processeur. Pour résoudre ce problème, augmentez l'intervalle de récupération. Il est recommandé de ne pas dépasser 1 récupération par minute par agent afin de préserver les performances de votre cluster Amazon MSK. Par défaut, l'intervalle de récupération se répète toutes les 10 à 15 secondes.
- Sujets
- Analytics
- Langue
- Français

Contenus pertinents
demandé il y a 3 ans
demandé il y a un an
demandé il y a 2 ans
demandé il y a 2 ans