[PYTHON] Detaillierte Erklärung Leistungsverbesserung mit NewRelic-Part 3

Detaillierte Erklärung: Leistungsverbesserung mit NewRelic-Teil 2 ist eine Fortsetzung.

Dieses Mal werden wir den Thread-Profiler vorstellen, der in der Funktion "Röntgensitzungen von Schlüsseltransaktionen" angezeigt wird.

x_ray_0.png

Fall 1: Ich möchte sehen, wo eine bestimmte API in der Quelle langsam, aber langsam ist

[Fall 1 von Teil 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) Ich habe eine ungefähre Vorstellung davon, wo die API Zeit braucht.

Es kann jedoch vorkommen, dass Sie detaillierter sehen möchten, welche Verarbeitung auf Quellcodebasis Zeit benötigt. Zu diesem Zeitpunkt Key Transactions und X- Ray Sessions.

Mit ** Schlüsseltransaktionen ** können Sie Anforderungen auf einer separaten Seite verfolgen und detaillierte Protokolle für jede bestimmte API anzeigen. ** X-Ray Sessions ** zeigt Ihnen den Profiler für diese bestimmte Anfrage.


Lass es uns einstellen.

Dieses Mal werde ich den Pfad der API von / api / home als Schlüsseltransaktionen hinzufügen. Klicken Sie in der Reihenfolge ① => ② => ③ wie unten gezeigt. Klicken Sie auf die API, an der Sie interessiert sind, um sie zu verfolgen. In diesem Fall ist es die Home-API.

transactions.png

Sie können Schlüsseltransaktionen in / api / home ausführen. Folgen Sie also dem Assistenten, um zur Seite Schlüsseltransaktionen zu gelangen und einen Blick darauf zu werfen. Auf diese Weise können Sie Informationen nur für bestimmte API-Anforderungen anzeigen.

key_transactions_1.png

Sie können Alert usw. auch über die Schlüsseltransaktion festlegen. Dieses Mal werde ich jedoch den Verarbeitungsengpass mit Röntgen untersuchen.

x_ray_1.png

x_ray_2.png

Sie haben jetzt X-Ray eingerichtet. Verfolgen Sie 50 Anfragen über einen Zeitraum von bis zu 1 Stunde unter dem Namen sample_home. Wenn der Server Zugriff hat, warten Sie eine Weile, fordern Sie einen API-Test usw. von der entsprechenden API an und warten Sie, bis sich 50 Anforderungen angesammelt haben.

Sobald Sie akkumuliert haben, öffnen Sie sample_home, klicken Sie auf X-Ray und öffnen Sie Thread Profile. Sie können den Engpass im Detail sehen, da er den Prozentsatz der Zeit anzeigt, die für jede Ausführungsreihenfolge benötigt wird. (Es tut mir leid, dass es schwer zu sehen ist, weil es nur ein Mosaik ist.) Es ist jedoch zu beachten, dass die Wartezeit, die beim Schalten der CPU aufgrund von E / A-Wartezeiten oder Kontextwechseln wartet, auch hier wiedergegeben wird, sodass sie nur als Referenz dient.

x_ray_3.png

Bonus: Untersuchen Sie die Ursache für verspätete Anfragen zufällig

Key Transactions verfügt über eine weitere nützliche Funktion, mit der Sie die Details jeder nachverfolgten Anforderung entsprechend der Antwortzeit anzeigen können. Mit dieser Funktion können Sie leicht Fälle erkennen, in denen viele Anforderungen schnell, manchmal aber auch langsam sind, und Sie können sich nur auf diese bestimmte Anforderung konzentrieren, um festzustellen, wo sie langsamer wird.

Darüber hinaus können Sie die ausgeführte ** SQL ** im Detail sehen, was für die Fehlerbehebung und langsame Abfragen sehr nützlich ist.

x_ray_4.png

Fazit

Dies ist das Ende der ** detaillierten Erklärung zur Verbesserung der NewRelic-Leistung **, die von 1 auf 3 fortgesetzt wurde. Ich denke, New Relic ist ein großartiges Tool, um verschiedene Messdaten einfach anzuzeigen und Ihre Freizeit zu sparen, um Services zu entwickeln, die Sie wirklich benötigen.

Recommended Posts

Detaillierte Erklärung Leistungsverbesserung mit NewRelic-Part 3
Detaillierte Erklärung Überwachung und Leistungsverbesserung mit NewRelic-Part 2
Detaillierte Erklärung Überwachung und Leistungsverbesserung mit NewRelic-Teil 1
Bemühungen zur Leistungsverbesserung
Messung der Netzwerkleistung mit iperf