Vorwort Als Linux-Betriebs- und Wartungsingenieure können wir in unserer täglichen Arbeit auf Situationen stoßen, in denen die CPU-Auslastung auf Linux-Servern 100 % erreicht und hoch bleibt. Wenn die CPU weiterhin hoch ausgelastet ist, beeinträchtigt dies den normalen Betrieb des Geschäftssystems und verursacht Verluste für das Unternehmen. Viele Betriebs- und Wartungsmitarbeiter sind bei dieser Situation oft ratlos. Bei CPU-Überlastungsproblemen können die folgenden zwei Methoden normalerweise verwendet werden, um sie schnell zu lokalisieren: Methode 1 Schritt 1: Verwenden
Finden Sie die PID des Prozesses, der zu viel CPU verwendet Schritt 2: Verwenden
Suchen Sie die ID des Threads, der im Prozess die meisten Ressourcen verbraucht Schritt 3: Verwenden
Konvertieren Sie die Thread-ID in eine Hexadezimalzahl (Buchstaben sollten klein geschrieben sein).
Schritt 4: Ausführung
Informationen zum Thread-Status anzeigen Methode 2 Schritt 1: Verwenden
Finden Sie den Prozess, der zu viel CPU verwendet Schritt 2: Verwenden
Erhalten Sie Thread-Informationen und finden Sie Threads, die viel CPU verbrauchen Schritt 3: Verwenden
Konvertieren Sie die erforderliche Thread-ID in das Hexadezimalformat Schritt 4: Verwenden
Drucken von Thread-Stack-Informationen Fallstudie Szenariobeschreibung Fehlerbehebung bei hoher CPU-Auslastung von JAVA-Prozessen in Produktionsumgebungen Lösungsprozess 1. Gemäß dem Top-Befehl wird festgestellt, dass der Java-Prozess mit PID 2633 bis zu 300 % der CPU belegt und ein Fehler auftritt. 2. Wie kann man nach dem Auffinden des Prozesses den spezifischen Thread oder Code lokalisieren? Zeigen Sie zunächst die Thread-Liste an und sortieren Sie sie nach den Threads mit hoher CPU-Auslastung: [root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn Die Ergebnisse sind wie folgt: Es wurde der Thread (TID) 3626 mit dem höchsten CPU-Verbrauch gefunden, der 12 Minuten lang die CPU-Zeit beansprucht hat! 3. Konvertieren Sie die erforderliche Thread-TID in das Hexadezimalformat [root@localhost ~]# printf "%x\n" 3626 e18 4. Verwenden Sie abschließend den Befehl jstack, um die Stapelinformationen dieses Threads während des Prozesses auszudrucken: [root@localhost ~]# jstack 2633 |grep "e18" -A 30 Im Vergleich zur Fehlersuche ist die Fehlersuche ebenso wichtig! Die meisten Überwachungssoftwareprogramme auf dem Markt ermöglichen eine Echtzeitüberwachung der Serverauslastung, beispielsweise Zabbix, Nagios, Alibaba Cloud Monitoring (für Cloud-Server) usw. Für die meisten Softwareprogramme ist jedoch erforderlich, dass Betriebs- und Wartungspersonal aktiv Regeln festlegt oder Tests durchführt, um Probleme zu erkennen. Wie können wir passiv Warnmeldungen erhalten? Ich möchte Ihnen eine praktische Betriebs- und Wartungssoftware empfehlen – Professor Wang. Für Benutzer, deren Unternehmen auf Alibaba Cloud bereitgestellt sind, müssen sie nur den schreibgeschützten AcessKey binden, der überwacht werden muss, um die entsprechenden Teammitglieder umgehend über die Alarminformationen der Cloud-Ressourcen zu benachrichtigen. Der Wechsel vom aktiven zum passiven Ansatz reduziert einerseits die Arbeitsbelastung der Betriebs- und Wartungstechniker und verringert andererseits die Wahrscheinlichkeit, dass Betriebs- und Wartungstechniker Alarme übersehen oder ignorieren. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der benutzerdefinierten Vue-Anweisungen und ihrer Verwendung
1. Download-Adresse: http://dev.mysql.com/downloa...
Inhaltsverzeichnis 1. Ursache 2. Geräteinformatio...
Die erste Lösung besteht darin, das Bild in ein ö...
Inhaltsverzeichnis 1. Einleitung Zweites Training...
Viele meiner Freunde haben möglicherweise ein Pro...
Dies ist eine ziemlich coole Funktion, die Websei...
Inhaltsverzeichnis 1. CSS-Stile direkt in HTML-Ta...
Inhaltsverzeichnis 1. Laden Sie das Installations...
Methode 1: Verwenden Sie den Befehl lsof Mit dem ...
Das Eingabefeld zeigt beim Eingeben von Inhalten i...
Es gibt eine neue Funktion, die das Erfassen eine...
Inhaltsverzeichnis Schreiben Sie vor Geschäftscod...
Inhaltsverzeichnis 1. Anweisung einfügen 1.1 Einf...
Was ist ein Index? Warum einen Index erstellen? I...
Inhaltsverzeichnis 01 sql_slave_skip_counter-Para...