Heim >Java >javaLernprogramm >Alibaba Cloud ARMS diagnostiziert in der Praxis Probleme mit festsitzenden Java-Anwendungen
Keine Panik, das ist nur ein Bild
Abgesehen von 404 dürfte dieses Bild für Internetnutzer am beunruhigendsten sein.
Internetnutzer können gerne Nachrichten im Hintergrund des offiziellen Kontos „Alibaba Middleware“ hinterlassen und uns die herzzerreißenden Dinge senden, die Sie im Internet sehen. Vielleicht werden wir Werbung machen Das ist die „Internet Heartache Collection“.
Einschlägigen Untersuchungen zufolge erhöht sich die Absprungwahrscheinlichkeit um etwa 30 %, wenn die Seitenladezeit von 1 Sekunde auf 3 Sekunden erhöht wird. Die Wahrscheinlichkeit von 1 bis 5 Sekunden steigt auf 90 %. Wenn das Laden Ihrer Website 10 Sekunden dauert, liegt die Absprungwahrscheinlichkeit bei über 120 %. (Die 120 % bedeuten hier nicht, dass 10 Leute kommen und 12 Leute gehen, sondern die Wachstumsrate der Benutzerabwanderung.) Daher ist in dieser Ära, in der „die Benutzererfahrung König ist“, die Überwachung der Anwendungsleistung zur obersten Priorität des Betriebs geworden Wartungsmanagement.
Website-Verzögerungen und langsames Laden von Seiten gehören zu den häufigsten Problemen bei Internetanwendungen. Es ist nicht einfach, solche Probleme zu beheben und kostet das Betriebs- und Wartungspersonal viel Zeit und Energie. Normalerweise gibt es drei Gründe:
» Der Bewerbungslink ist zu lang und es gibt keine Möglichkeit zum Starten.
Von der Front-End-Seite bis zum Back-End-Gateway, vom Webanwendungsserver bis zur Back-End-Datenbank können Probleme in jedem Link dazu führen, dass die Gesamtanforderung hängen bleibt. Ist die Front-End-Ressource Laden zu langsam? Oder stimmt etwas mit der Datenbank nicht? Oder weist der neu veröffentlichte Servercode Leistungsprobleme auf? Probleme können aus verschiedenen Gründen auftreten.
Anwendungen, die eine „Microservice“-Architektur verwenden, verfügen über komplexere Verknüpfungen. Unterschiedliche Komponenten können von unterschiedlichen Teams und Mitarbeitern gewartet werden, was die Fehlerbehebung erschwert.
» Das Protokoll ist unvollständig oder von schlechter Qualität und die Website fehlt.
Anwendungsprotokolle sind zweifellos ein Artefakt zur Behebung von Online-Problemen, aber der Ort von Problemen ist oft unvorhersehbar. Wenn Probleme auftreten, stellt sich normalerweise heraus, dass die Protokollinformationen unvollständig sind, da wir nicht jede Stelle ausdrucken können, an der Probleme auftreten können . Protokoll.
Die Definition von „langsam“ ist subjektiv und „langsam“ ist manchmal ein zufälliges Phänomen. Um die „langsame“ Codezeile wirklich zu erfassen, müssen wir oft jeden Aufruf aufzeichnen und dürfen nicht jede Codezeile verpassen, aber dieser Ansatz ist zu kostspielig.
» Unzureichende Überwachung und es ist zu spät, wenn Probleme auftreten.
Eine schnelle Geschäftsentwicklung und eine schnellere Iterationsgeschwindigkeit führen zu häufigen Änderungen an Schnittstellen im Geschäftssystem, erhöhten Abhängigkeiten und einer Verschlechterung der Codequalität. Wenn es kein vollständiges Überwachungssystem gibt, das die Leistung jeder Schnittstelle der Anwendung vollautomatisch überwachen und problematische Aufrufe automatisch aufzeichnen kann, ist es zu spät, das Problem nach Benutzerfeedback zu lösen.
ARMS (Application Real-Time Monitoring Service) ist ein Full-Link-Überwachungsprodukt der Alibaba Cloud Application Performance Management (APM). ARMS bietet eine umfassende Palette von Überwachungsfunktionen für die Überwachung und Diagnose von Java-Anwendungen, die Echtzeitüberwachung des Internets der Fahrzeuge, die Echtzeitüberwachung der Einzelhandelsbranche, die Überwachung der Benutzererfahrung und andere Szenarien, einschließlich Front-End-Überwachung, Anwendungsüberwachung und benutzerdefinierter Überwachungsfunktionen Erstellen Sie schnell Echtzeit-Geschäftsüberwachungsfunktionen.
Schritt 1: Java-Probe installieren (wenn Ihre Anwendung auf EDAS gehostet wird, können Sie diesen Schritt sogar überspringen)
• Öffnen Sie ARMS und erstellen Sie die Anwendung.
• Laden Sie das Java-Probe-Paket herunter und entpacken Sie es.
• Fügen Sie -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar-Darms.licenseKey=xxx -Darms.appId=xxx hinzu ( Die App-ID und der Lizenzschlüssel werden ausgefüllt in entsprechend den auf der Seite zugewiesenen Informationen)
• Öffnen Sie die ARMS-Seite, die Daten werden gemeldet und überprüfen Sie, ob die Java-Probe erfolgreich installiert wurde.
Schritt 2: Finden Sie „langsame“ verdächtige Hinweise in der Anwendungsübersicht
Geben Sie die Topologiekarte der ARMS-Anwendung ein. In der Anwendungsübersicht können wir deutlich erkennen, dass es heute 5 Mal „langsames SQL“ im System gibt.
Schritt 3: Durchsuchen und entdecken Sie die „langsame Schnittstelle“
Klicken Sie auf die Schnittstellenliste, wir können sie auf einen Blick sehen Was diese Anwendung bietet Alle Schnittstellen sowie die Anzahl der Aufrufe und der Zeitverbrauch dieser Schnittstelle. Natürlich werden diese Schnittstellen automatisch von ARMS-Probes im Programm erkannt, ohne dass eine Konfiguration erforderlich ist.
Unter diesen Schnittstellen wird die „langsame“ Schnittstelle deutlich gekennzeichnet. Wir haben eindeutig eine verdächtig langsame Schnittstelle gefunden.
Wählen Sie links die „langsame“ Schnittstelle mit den meisten Aufrufen aus. Rechts können wir sehen, dass dieser Aufruf im Datenbankaufruf offensichtlich „langsam“ ist.
Schritt 4: „Welche Codezeile ist langsam“? Finden Sie den Grund mit einem Klick!
• Es reicht nicht aus, den Zeitverbrauch der Schnittstelle zu sehen, wir müssen die Codezeile genau lokalisieren, in der die „Langsamkeit“ auftritt.
• Klicken Sie auf „Schnittstellen-Snapshot“, um die Snapshots aller dieser Schnittstelle entsprechenden Schnittstellen anzuzeigen. Der Snapshot ist eine vollständige Aufzeichnung des vollständigen Linkaufrufs eines Anrufs. Die ARMS-Probe zeichnet den Code und die benötigte Zeit jedes Anrufs mit sehr geringem Leistungsverlust auf und hilft Ihnen so, „langsame“ Probleme zu lokalisieren.
• Wir klicken auf die TraceId eines bestimmten Anruf-Snapshots und erweitern ihn, um zu sehen, welche Leitung für diesen Anruf besonders „langsam“ ist. Aus dem Bild oben können wir deutlich erkennen, dass bei diesem Aufruf, der 705 Millisekunden dauerte, die meiste Zeit für den SQL-Aufruf „SELECT * FROMl_employee“ aufgewendet wurde, bei dem es sich offensichtlich um einen vollständigen Tabellenscanvorgang handelt!
• Bisher haben wir eindeutig die Grundursache für einen langsamen Anruffehler im System entdeckt. Und es gibt eine ausreichende Grundlage, um unseren nächsten Schritt der Codeoptimierungsarbeit zu leiten. Wir können auch zur Anrufschnittstellenliste zurückkehren und dann nacheinander andere „langsame“ Anrufe in der Liste öffnen und sie einzeln lösen. Ich glaube, dass Ihre Website mit Hilfe von ARMS in der Lage sein wird, fernzubleiben Vermeiden Sie Verzögerungen und sorgen Sie für ein reibungsloseres Benutzererlebnis.
Schritt 5: Probleme verhindern, bevor sie auftreten – Alarme einstellen
Natürlich können Sie in den Alarmeinstellungen von ARMS Alarme für eine bestimmte Schnittstelle oder alle Schnittstellen einstellen. Lassen Sie Ihr Betriebs- und Wartungsteam sofort benachrichtigen, wenn die Seitenoberfläche hängen bleibt.
Zusätzlich zu Website-Verzögerungen und langsamem Laden von Seiten weist die Website natürlich auch eine Reihe von Problemen auf, wie z. B. Hintergrundfehler, Fehler beim Laden von Seiten und Speicherverluste. Wie Sie mit ARMS schnell weitere Website-Probleme lösen können, lesen Sie bitte in unserer ARMS-Artikelserie „Häufige Website-Probleme in einer Minute orten“.
Verwandte Empfehlungen:
mysql-Alibaba Cloud-RDS-MySQL-5.5 Berechnungsproblem
Das obige ist der detaillierte Inhalt vonAlibaba Cloud ARMS diagnostiziert in der Praxis Probleme mit festsitzenden Java-Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!