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
Als leistungsstarker Editor mit umfangreichen Opt...
Vorwort HTTP und HTTPS In unserem täglichen Leben...
Das enctype-Attribut des FORM-Elements gibt den Ko...
Inhaltsverzeichnis 1. Neues Projekt erstellen 2. ...
brauchen Das Konfigurieren von DingTalk-Alarmen i...
Auf einem Linux-Computer gibt es zwei Zeitzonen: ...
Installieren Sie Virtualisierungssoftware Bevor S...
Wenn Sie die Größe und Anzahl der InnoDB-Redo-Log...
Öffentlicher Name der Seite: #wrapper - - Der äuß...
1. Erstellen Sie die MySQL-Datenbank nacos_config...
Da ich das System häufig installiere, muss ich na...
Vorwort Der optionale Verkettungsoperator (?.) er...
Aus beruflichen Gründen ist es oft nicht möglich,...
Inhaltsverzeichnis 1. Einführung in SQL-Injection...
Lassen Sie mich zunächst kurz erklären, was MySQL...