[PYTHON] Explication détaillée Amélioration des performances avec NewRelic-Part 3

Explication détaillée: amélioration des performances avec NewRelic-Part 2 est une continuation.

Cette fois, nous présenterons le Thread Profiler qui peut être vu dans la fonction appelée X-Ray Sessions of Key Transactions.

x_ray_0.png

Cas 1: je veux voir où une API particulière est lente mais lente sur la source

[Cas 1 de la partie 1](http://qiita.com/wapa5pow/items/e3ef018af270cc2ad014#%E3%82%B1%E3%83%BC%E3%82%B91-%E3%82%A2%E3% 83% 97% E3% 83% AA% E3% 82% B1% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 81% AE% E5% BF% 9C% E7% AD% 94% E3% 81% 8C% E9% 81% 85% E3% 81% 84% E3% 81% 91% E3% 81% A9% E3% 82% 82% E3% 81% A3% E3% 81% A8% E6% 97% A9% E3% 81% 8F% E3% 81% AA% E3% 82% 89% E3% 81% AA% E3% 81% 84% E3% 81% 8B) J'ai eu une idée approximative de l'endroit où l'API prend du temps.

Cependant, il peut arriver que vous souhaitiez voir plus en détail le traitement qui prend du temps sur la base du code source. À ce moment-là, Key Transactions et X- Ray Sessions.

** Key Transactions ** vous permet de suivre les demandes sur une page distincte et de voir les journaux détaillés pour chaque API spécifique. ** X-Ray Sessions ** vous montrera le profileur pour cette demande particulière.


Définissons-le.

Cette fois, j'ajouterai le chemin de l'API de / api / home en tant que transactions clés. Cliquez dans l'ordre de ① => ② => ③ comme indiqué ci-dessous. Cliquez sur l'API qui vous intéresse ② pour la suivre. Dans ce cas, il s'agit de l'API d'accueil.

transactions.png

Vous pouvez effectuer des transactions clés dans / api / home, alors suivez l'assistant pour accéder à la page Transactions clés et jetez un œil. De cette manière, vous ne pouvez voir les informations que pour des requêtes API spécifiques.

key_transactions_1.png

Vous pouvez également définir Alerte, etc. par transaction clé, mais cette fois, j'étudierai le goulot d'étranglement du traitement avec X-Ray.

x_ray_1.png

x_ray_2.png

Vous avez maintenant configuré X-Ray. Suivez 50 demandes pendant 1 heure maximum sous le nom sampling_home. Si le serveur a accès, attendez un moment, demandez un test d'API, etc. à l'API correspondante et attendez que 50 requêtes s'accumulent.

Lorsque vous avez terminé, ouvrez sampling_home, cliquez sur X-Ray et ouvrez Thread Profile. Vous pouvez voir le goulot d'étranglement en détail car il indique le pourcentage de temps pris pour chaque ordre d'exécution. (Je suis désolé, c'est difficile à voir car c'est juste une mosaïque) Cependant, il convient de noter que le temps d'attente d'attente lorsque la CPU est commutée en raison d'une attente d'E / S ou d'un changement de contexte est également reflété ici, il est donc uniquement à titre de référence.

x_ray_3.png

Bonus: enquêter sur la cause des demandes tardives par hasard

Key Transactions possède une autre fonctionnalité utile qui vous permet de voir les détails de chaque demande suivie en fonction du temps de réponse. Avec lui, il est facile de repérer les cas où de nombreuses demandes sont rapides, mais parfois lentes, et vous pouvez vous concentrer uniquement sur cette demande particulière pour voir où elle ralentit.

De plus, vous pouvez voir le ** SQL ** exécuté en détail, ce qui est très utile pour le dépannage et les requêtes lentes.

x_ray_4.png

Conclusion

C'est la fin de ** l'explication détaillée de l'amélioration des performances de NewRelic ** qui s'est poursuivie de 1 à 3. Je pense que New Relic est un excellent outil pour voir facilement diverses mesures et économiser votre temps libre pour développer les services dont vous avez vraiment besoin.

Recommended Posts

Explication détaillée Amélioration des performances avec NewRelic-Part 3
Explication détaillée Surveillance et amélioration des performances avec NewRelic-Part 2
Explication détaillée Surveillance et amélioration des performances avec NewRelic-Part 1
Efforts d'amélioration des performances
Mesure de la performance du réseau avec iperf