Problème
Votre conteneur ktranslate atteint 100 % d'utilisation du processeur, ou il est généralement plus élevé que prévu.
Conseil
Un détail auquel il faut faire attention est que pour ktranslate, il est important de se concentrer sur le pourcentage maximum de CPU plutôt que sur la moyenne. KTranslate utilise un pourcentage élevé de CPU au début d'un cycle d'interrogation et beaucoup moins à la fin du cycle. Lorsque vous regardez l'utilisation moyenne, vous pouvez voir 60 % et manquer le fait que ktranslate passe du temps près de 100 %, ce qui est un problème potentiel. Vous devez allouer suffisamment de ressources pour que la consommation maximale du processeur n'atteigne pas 100 %.
Solution
Les causes de l'utilisation du processeur varient en fonction du type de conteneur ktranslate avec lequel vous travaillez.
SNMP
Les conteneurs SNMP voient principalement l'utilisation du processeur augmenter en raison du nombre de points de données que nous devons collecter à partir des périphériques cibles et du temps passé à tenter de collecter chaque point de données.
Les appareils avec une latence élevée lors de la réponse aux requests SNMP nécessitent effectivement davantage de ressources. Avoir un timeout
plus long ou plus de retries
augmente la probabilité que vous obteniez les données de ces appareils lents pour éviter les écarts de cartographie, mais cela augmente également la quantité de ressources requises que vous devez fournir à votre conteneur. Il est également possible d'avoir un nombre élevé d'événements d'interruption SNMP entrants. En règle générale, vous devriez pouvoir ingérer environ 1 000 événements par seconde pour chaque processeur.
En cas d'utilisation intensive, vos options sont les suivantes :
- Ajoutez plus de CPU à l'hôte pour gérer la workload existante.
- Augmentez l'intervalle d'interrogation en ayant un nombre plus grand dans les configurations globales
poll_time_sec
ou spécifiques à l'appareil. - Réduisez le nombre de périphériques interrogés en les supprimant de la section des périphériques du fichier yaml de configuration de ktranslate et en vous assurant qu'ils ne sont pas inclus dans une redécouverte automatique.
- Excluez les MIB dont vous n'avez pas besoin de la liste globale
mibs_enabled
(moins courant). - Réduisez éventuellement le volume des interruptions SNMP de faible valeur/bruyantes en modifiant la configuration des périphériques réseau pour ne pas les envoyer.
Flux (Flow)
Les conteneurs de flux voient principalement l'utilisation du processeur augmenter en raison du nombre d'événements de flux entrants. En règle générale, vous devriez pouvoir ingérer environ 2 000 flux par seconde pour chaque processeur, mais les charges varient légèrement selon les différents protocoles de flux.
En cas d'utilisation intensive, vos options sont les suivantes :
- Ajoutez plus de CPU à l'hôte pour gérer la workload existante.
- Réduisez le volume des flux entrants en modifiant les paramètres du périphérique réseau, par exemple en collectant uniquement les flux sur les interfaces critiques ou en utilisant des flux échantillonnés si possible.
Syslog
Les conteneurs Syslog voient principalement l'utilisation du processeur augmenter en raison du nombre d'événements syslog entrants. En règle générale, vous devriez pouvoir ingérer environ 2 000 messages par seconde.
En cas d'utilisation intensive, vos options sont les suivantes :
- Ajoutez plus de CPU à l'hôte pour gérer la workload existante.
- Réduisez le volume des événements syslog de faible valeur/bruyants en modifiant la configuration des périphériques réseau pour ne pas envoyer certains types de messages ou de niveaux de gravité. Consultez la documentation du fournisseur de votre appareil pour savoir comment effectuer ces modifications.