Augmentation de l'utilisation du CPU depuis la mise à jour 3.4.0.beta4-dev (58f75ed205)

J’ai constaté une augmentation substantielle de l’utilisation du processeur depuis la mise à niveau ce week-end. L’utilisation du processeur de RUBY semble être le principal moteur. Ceci a été mentionné par un autre utilisateur de discourse dans ce sujet.

Comme vous pouvez le voir sur les graphiques ci-dessous, l’utilisation du processeur et la charge avant la mise à niveau étaient beaucoup plus faibles qu’après la mise à niveau. La mise à niveau a eu lieu le soir du 31/1.

Voici deux images de TOP prises à 33 heures d’intervalle :

En 33 heures, il y a une utilisation significative du processeur ruby. D’après les données du top, j’ai constaté une utilisation du processeur 2 fois plus élevée au cours des dernières 33 heures sur 22 jours. En 33 heures, j’ai constaté 11 heures de temps processeur. (648 minutes de temps processeur réparties sur 5 PID)

Données supplémentaires :

  • Le trafic a diminué au cours des deux derniers jours d’environ 10 %. (analyses et tableau de bord)
  • Installation standard de discourse sur un seul conteneur (pas de chat)
  • Les files d’attente Sidekiq sont minimes (1K à 2K par jour)
  • Rien ne semble inhabituel dans les journaux de discourse
  • Je fonctionne sur un serveur DO avec 8 Go de RAM et 2 vCPU AMD.

Ce n’est pas le cas d’un serveur critique en panne, mais les serveurs qui fonctionnent à 5 % à 7 % sont beaucoup plus heureux que ceux qui fonctionnent à 25 %.

Quelles informations puis-je fournir pour aider à résoudre ce problème ?

merci

3 « J'aime »

Laissons cela en support un moment jusqu’àà ce que nous déterminions s’il y a un bug.

Pouvez-vous entrer dans le conteneur et exécuter un htop depuis l’intérieur (vous devrez l’installer) de cette façon, vous pourrez dire quel processus spécifique consomme beaucoup de CPU.

Vous pouvez obtenir un peu plus de visibilité en utilisant une technique comme celle-ci : Debugging 100% CPU usage in production Ruby on Rails systems

Le plus probable cependant, est que sidekiq /sidekiq soit surchargé d’une manière ou d’une autre sur votre instance. (Je regarderais particulièrement le planificateur)

Vues htop.

Voici une vidéo de 30 secondes :

Captures d’écran aléatoires :

Vue arborescente :

sidekiq :


Faites-moi savoir s’il y a quelque chose de spécifique que vous devez voir. Je

2 « J'aime »

Ouais, quelque chose cloche :

top -H -p PID_DE_UNICORN

Je soupçonne que vous y verrez V8 DefaultWorker, je pense que c’est une régression dans mini_racer… je vais revenir en arrière pour voir si cela résout le problème.

1 « J'aime »

OK, c’est maintenant rétabli,

Faites-moi savoir si le commit restaure les performances.

6 « J'aime »

Oui, cela a résolu le problème de CPU élevé. Ma charge sur 1 minute et 5 minutes est environ 1/3 des valeurs précédentes. C’est avec htop et netdata qui tournent maintenant sur le système.

Vidéo HTOP

Graphique de charge

Je m’attendrais à ce que l’utilisation du CPU et la charge diminuent lentement à mesure que davantage de requêtes de base de données sont mises en cache dans le système.

Tableau de charge :

temps Avant correction Après correction
1 min 0.4 à 0.6 0.06 à 0.1
5 min 0.39 à 0.5 0.15 à 0.18

La métrique de 15 minutes est impactée par une reconstruction. Je publierai d’autres statistiques plus tard ce matin.

Merci pour la correction tardive.

3 « J'aime »

Désolé pour cela, la mise à niveau de mini_racer a été une grande aventure. J’espère que nous allons bientôt nous en sortir.

3 « J'aime »

Merci pour la réponse rapide pour enquêter.

Je suis sûr que vous aviez d’autres projets pour la journée plutôt qu’un retour en arrière.

En tant que nouvel utilisateur de Discourse, 2 semaines depuis la migration, le produit a été formidable à utiliser.

2 « J'aime »

Histoire similaire ici aussi.

[Edit : semble être corrigé maintenant après la mise à jour vers la dernière branche]

Voici une revue des performances 18 heures après la reconstruction. La table de charge dit tout.

Table de charge :

temps Avant correction Après correction
1 min 0,4 à 0,6 0,03 à 0,05
5 min 0,39 à 0,5 0,09
15 min 0,68 0,12

Légende :

  • Flèche rouge - application reconstruite
  • Flèche violette - netdata désactivé

Note, pour clore la boucle, le bug qui en était la cause était le suivant :

J’ai mis à jour la gem. Un avantage immédiat est qu’il semble que cette version de v8 utilise légèrement moins de mémoire, ce qui est appréciable.

6 « J'aime »

J’ai installé la dernière version hier soir avec le correctif. L’utilisation du processeur est revenue à des niveaux historiques.

Merci pour tout ce travail formidable.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.