Wie und warum Server-CPU-Auslastung überwachen

Wenn ich eine Anwendung verwende, möchte ich, dass sie schnell ist. Schnelle Bewerbungen machen mich glücklich. Und ich bin sicher, es ist das gleiche mit allen. Wenn Sie eine Anwendung besitzen, die mit dem Internet arbeitet, ist es wichtig, sich auf die Serverleistung zu konzentrieren. Es gibt viele Dinge zu beachten, um einen leistungsfähigen Server zu haben. Aber um etwas zu verbessern, muss man wissen, wo es überhaupt steht. Daher ist die Überwachung Ihres Servers der erste Schritt zur Steigerung der Leistung Ihres Servers.

Wenn Sie darüber sprechen, was zu überwachen ist, um die Leistung eines Servers zu verstehen, gibt es viele Metriken, die auftauchen könnten. Wir werden uns in diesem Beitrag nur auf eines konzentrieren: Server-CPU-Auslastung. Wir beginnen mit der Erklärung der CPU-Auslastung des Servers und besprechen dann, warum und wie diese überwacht wird.

 CPU in skalierten Farben bedeutet Server CPU Usage Monitor

Was bedeutet Server-CPU-Auslastung?

Alles, was auf dem Server passiert, ist eine Aufgabe für das System. Diese Aufgabe gliedert sich in Prozesse, die vom Server ausgeführt werden. Prozesse können unterschiedlich komplex sein und sich darin unterscheiden, wie schnell sie abgeschlossen werden können. Auf dieser Grundlage benötigt die CPU einige Zeit, um den Prozess auszuführen. Mit anderen Worten, die CPU wird verwendet, um den Prozess auszuführen. CPU-Auslastung ist der Prozentsatz der Zeit, die die CPU zum Ausführen ihrer Aufgaben verwendet wird.

 überwachung der Server-CPU-Auslastung

Wenn Ihr System läuft, kann sich eine CPU in drei Zuständen befinden: idle, busy oder waiting for I/O.

Idle

Wenn sich die CPU im Idle-Zustand befindet, tut die CPU nichts. Es wartet nur darauf, dass ihm eine Aufgabe zugewiesen wird. Es ist sehr unwahrscheinlich, dass sich eine CPU im Leerlauf befindet, wenn Sie ein Einzelprozessorsystem haben. Selbst wenn Sie keine Anwendung ausführen oder etwas tun, wird die CPU zum Ausführen von Betriebssystemaufgaben verwendet. Wenn Ihr System jedoch über mehrere Prozessoren verfügt, können Sie einen oder einige davon im Leerlauf sehen. Dies kann daran liegen, dass nur ein oder wenige Prozessoren verwendet werden und die anderen nichts zu tun haben.

Beschäftigt

Das Gegenteil des Ruhezustands ist der besetzte Zustand, wenn die CPU zum Ausführen eines Prozesses verwendet wird. Eine CPU ist für verschiedene Arten von Aufgaben verantwortlich. Während der Ausführung von Aufgaben führt eine CPU vier Dinge aus:

  1. Fetch: Die Anweisungen zum Ausführen der Aufgabe werden im Speicher gespeichert. Die CPU muss diese Anweisungen aus dem Speicher abrufen, um zu verstehen, was zu tun ist.
  2. Dekodieren: Die Anweisungen für die CPU können in verschiedenen Formaten vorliegen, z. B. in einem Programm. Angenommen, Sie haben ein Programm in C, Java oder Python geschrieben. CPUs können diese Programmiersprachen nicht direkt verstehen. Es muss es in eine Form dekodieren, die es verstehen kann.
  3. Ausführen: Dies ist, wenn die CPU die Aufgabe tatsächlich ausführt.
  4. Speicher: Sobald die CPU die Aufgabe abgeschlossen hat, muss sie eine Rückmeldung über die Aufgabe geben. Die Ergebnisse nach der Taskausführung werden im Speicher gespeichert.

E / A-Vorgänge

Dies ist der Zustand, in dem die CPU nicht vollständig im Leerlauf, aber auch nicht belegt ist. Während einer Prozessausführung muss eine CPU möglicherweise einige Daten an eine andere Komponente oder einen anderen Prozess ausgeben. Oder die CPU muss möglicherweise warten, um Daten von einem anderen Prozess oder einer anderen Komponente abzurufen. In diesem Fall wartet es auf den Abschluss des E / A-Vorgangs, damit es die Ausführung seiner Aufgabe fortsetzen kann.

Die CPU-Auslastung ist das Maß für die CPU, wenn sie sich nicht im Leerlauf befindet. Obwohl die CPU-Auslastung in Prozent gemessen wird, können Sie CPU-Auslastungswerte sehen, die größer als 100% sind. Dies bedeutet nicht, dass die CPU überlastet ist. Beispielsweise würden Sie in Multiprozessorsystemen eine CPU-Auslastung von mehr als 100% sehen. Der Wert der CPU-Auslastung für ein System ist die Summe des Prozentsatzes der CPU-Auslastung einzelner CPUs. Wenn Sie also zwei Prozessoren haben und einer von ihnen eine CPU-Auslastung von 60% und der andere eine CPU-Auslastung von 50% hat, beträgt der Gesamtwert der CPU-Auslastung 110%.

Was verursacht eine hohe CPU-Auslastung?

Wenn Sie den Kern des Problems finden, können Sie bessere Lösungen für eine hohe CPU-Auslastung implementieren. Je nach Anwendungsfall kann es verschiedene Gründe für die CPU-Auslastung geben. Ich liste die häufigsten Ursachen auf.

Prozesse mit hohem CPU-Bedarf

Einige Programme benötigen hohe CPU-Ressourcen. Wenn Sie ein System mit niedriger Spezifikation haben und versuchen, ein High-End-Videospiel auszuführen, wird die CPU-Auslastung offensichtlich durch das Dach gehen. Ebenso kann es verschiedene Prozesse geben, die hohe CPU-Ressourcen benötigen, um zu arbeiten. Solche Prozesse oder eine Anzahl von Prozessen, die als Zwischensumme eine hohe CPU verwenden, können eine der Ursachen sein. Auf Servern, die mehrere Dienste ausführen, um den Server am Laufen zu halten, Simulationen usw., kann eine hohe CPU-Auslastung verursachen.

Hintergrundprozesse

Prozesse lassen sich primär in 2 Kategorien einteilen: Systemprozesse und Anwendungsprozesse. Systemprozesse sind die Prozesse, die benötigt werden, um Ihr System am Laufen zu halten. Anwendungsprozesse sind die Prozesse, die Sie für einen bestimmten Zweck verwenden würden. Wenn diese Prozesse im Hintergrund weiterlaufen, verbrauchen sie CPU-Ressourcen.

Viele Anwendungsprozesse laufen auch nach dem Schließen des Anwendungsfensters im Hintergrund weiter. Dies ist auf einem Server weniger wahrscheinlich, da ein Server normalerweise regelmäßig gewartet und bereinigt wird, um nur die Prozesse zu haben, die er benötigt, aber es ist immer noch möglich.

Malware

Malware (Bösartige Software) sind Programme, die von böswilligen Akteuren verwendet werden, um Ihr System anzugreifen oder illegitime Aktionen auf Ihrem System auszuführen. Anfangs verwendet Malware keine hohen CPU-Ressourcen, um verborgen zu bleiben, aber wenn sie bösartige Aktionen ausführen, verursachen sie eine hohe CPU-Auslastung. Ich war Zeuge dieses Vorfalls, bei dem eine Woche zuvor Malware auf einem Server induziert worden war und eines Tages alle sensiblen Daten vom Server in den Cloud-Speicher übertragen wurden. Diese Malware verbrauchte also nicht viel CPU-Ressourcen, während sie Dinge einrichtete und kritische Daten fand. Aber sobald es alles gefunden hatte, was es brauchte, gab es aufgrund der Datenübertragung einen enormen Anstieg der CPU-Auslastung.

Nicht optimierter Code

Es ist üblich, dass benutzerdefinierter Code für bestimmte Aufgaben auf Servern ausgeführt wird. Wenn solche Codes nicht optimiert sind, verbrauchen sie möglicherweise viele CPU-Ressourcen. Nicht optimierte Schleifen und Rekursion sind einige der häufigsten Ursachen für eine hohe CPU-Auslastung aufgrund von nicht optimiertem Code.

Häufige Fehlerbehebungen bei hoher CPU-Auslastung

Basierend auf den zuvor angesprochenen häufigen Ursachen sehen wir uns einige der häufigsten Fehlerbehebungen bei hoher CPU-Auslastung an.

Neustart

Ein Systemneustart ist eine Lösung für die meisten Computerprobleme. Wie würde das helfen, die CPU-Auslastung zu reduzieren? Ein Neustart würde alle Hintergrundprozesse schließen, die möglicherweise aufgrund einer Aktion gestartet wurden, die Sie jedoch nicht mehr benötigen. Es würde auch Zombie-Prozesse oder andere Prozesse beenden, die aufgrund einer Fehlfunktion auf unbestimmte Zeit ausgeführt werden. Ein Neustart Ihres Systems würde also alle (zumindest die meisten) unnötigen Prozesse bereinigen und die CPU-Auslastung reduzieren.

Hintergrundprozesse beenden

Ein Neustart des Systems ist insbesondere für Server möglicherweise nicht möglich. Sie müssen also unnötige Prozesse ausführen, ohne das System neu zu starten. Dazu können Sie alle laufenden Prozesse auflisten, feststellen, welche Prozesse nicht erforderlich sind, und sie beenden. So würde es im Windows Task-Manager aussehen:

 überwachung der Server-CPU-Auslastung

Ein weiterer Fix ist der Umgang mit Startprozessen. Es gibt einige Prozesse, die so konfiguriert sind, dass sie gestartet werden, sobald Ihr System startet. Einige davon sind notwendig und andere nicht. Sie können solche Prozesse identifizieren und sie vom Autostart ausschließen. In Windows finden Sie sie unter der Registerkarte „Start“ im Task-Manager:

 überwachung der Server-CPU-Auslastung

Anti-Malware

Malware ist gefährlich. Nicht nur in Bezug auf die CPU-Auslastung, sondern im Allgemeinen auch. Einige Malware verursachen eine hohe CPU-Auslastung und die Verwendung von Anti-Malware könnte Ihre beste Verteidigung gegen solche Malware sein. Moderne Anti-Malware-Software ist intelligent und fortschrittlich. Sie können nicht nur Malware in Ihrem System identifizieren und löschen oder unter Quarantäne stellen, sondern auch verhindern, dass Malware auf Ihr System gelangt. Mit Anti-Malware beheben Sie also nicht nur die hohe CPU-Auslastung, sondern verhindern auch die hohe CPU-Auslastung durch Malware.

Codeoptimierung

Wenn Sie feststellen, dass der Grund für die hohe CPU-Auslastung auf nicht optimierten Code zurückzuführen ist, müssen Sie ihn optimieren. Sie müssen den Code analysieren und herausfinden, welcher Teil des Codes CPU-Ressourcen verbraucht, und ihn optimieren.

CPU-Upgrade

Wenn Sie alle anderen Probleme behoben und alles optimiert haben und immer noch eine hohe CPU-Auslastung sehen, bedeutet dies, dass Ihre CPU-Anforderung hoch ist. In solchen Fällen gibt es keine andere Möglichkeit, als Ihre CPU-Ressourcen zu aktualisieren.

Warum sollten Sie die CPU-Auslastung des Servers überwachen?

Ein Server kann zwei Arten von Jobs auf hoher Ebene ausführen: einen Job vom Benutzer und einen Job innerhalb des Systems. Ein Job vom Benutzer ist, wenn ein Benutzer einen Dienst oder Daten vom Server angefordert hat. Angenommen, Sie gehen zu YouTube und suchen nach etwas. Der YouTube-Server muss alle für Ihre Suche relevanten Videos abrufen und als Antwort auf Ihre Anfrage senden. Diese Transaktion von Daten verwendet CPU-Zeit.

Ein Server hat andere Aufgaben, als nur auf Benutzer zu antworten. Es versteht sich von selbst, dass die CPU zum Ausführen des Betriebssystems und der Webdienste verwendet wird. Aber abgesehen davon können Server verwendet werden, um einige Skripte auszuführen, um Daten zu verarbeiten. Ein häufiges Beispiel ist das Ausführen von Ansible Playbooks. Diese Playbooks können Aufgaben ausführen, ohne dass der Benutzer eingreifen muss.

Verwalten von Ressourcen und Aufgaben

Wenn Ihre CPU-Auslastung niedrig ist, verschwenden Sie Ihre Ressourcen. Und wenn Ihre CPU-Auslastung sehr hoch ist, verlangsamt sich das System und kann nachlassen. Sie möchten nicht, dass dies geschieht, weshalb es wichtig ist, die CPU-Auslastung des Servers zu überwachen. Die Überwachung der Server-CPU-Auslastung hilft Ihnen zu verstehen, wie viel CPU verwendet wird. Dies wird Ihnen bei der Entscheidung helfen, ob Sie Ihre CPU dazu bringen können, mehr Jobs zu erledigen oder Ihre Ressourcen zu erhöhen, um der Notwendigkeit gerecht zu werden.

Programme optimieren

Die Überwachung der CPU-Auslastung des Servers war sehr vorteilhaft, um Ressourcen zu verwalten und Aufgaben zu optimieren. Es gab Fälle, in denen Programme mehr Zeit in Anspruch nehmen, als sie idealerweise in Anspruch nehmen sollten. Wenn Sie feststellen, dass die CPU-Auslastung selbst bei der Ausführung eines kurzen, einfachen Programms höher ist, wissen Sie, dass mit Ihrem Programm etwas nicht stimmt. Oft sind Programme aufgrund schlechter Programmierpraxis nicht effizient. Die Überwachung der CPU-Auslastung kann Ihnen helfen, solche Instanzen zu finden und Code zu optimieren. Daher ist die Überwachung der CPU-Auslastung wie das Schlagen von zwei Vögeln mit einem einzigen Stein.

Nun, da wir mit dem „Was“ und „Warum“ der CPU-Auslastung fertig sind und gelernt haben, wie vorteilhaft die Überwachung der Server-CPU-Auslastung sein kann, kommen wir zum „Wie“ -Teil.

Überwachung der Server-CPU-Auslastung

Die CPU-Auslastung ist kein Geld, das Sie über einen bestimmten Zeitraum sparen und dann verwenden können, wenn Sie möchten. Ungenutzte CPU ist eine verschwendete Ressource. Deshalb möchte jeder, dass die CPU-Auslastung des Servers nahezu 100% beträgt. Und um es am besten zu halten, müssen Sie möglicherweise einige Optimierungen vornehmen und das System weiter aktualisieren. Um zu wissen, was zu tun ist, müssen Sie den aktuellen Status der Server-CPU-Auslastung kennen.

Sie können die CPU-Auslastung Ihres Servers mit einem einzigen Befehl überprüfen. Wenn Sie ein Windows-Betriebssystem haben, öffnen Sie die Eingabeaufforderung und führen Sie diesen Befehl aus:

wmic cpu get loadpercentage

Sie sollten den Prozentsatz der CPU-Auslastung sehen, wie in diesem Screenshot gezeigt:

Basierend auf Ihren Anforderungen können Sie die CPU-Auslastung regelmäßig abfragen, die Daten irgendwo speichern und später anzeigen. Oder Sie können die CPU-Auslastung in ein Dashboard streamen, um sie jederzeit zu überwachen.

Die meisten Betriebssysteme verfügen über integrierte Tools und Dienstprogramme zur Überwachung der CPU-Auslastung. Diese Tools haben jedoch Einschränkungen und sind normalerweise zu einfach. In der heutigen Zeit brauchen wir fortschrittliche Fähigkeiten, um mit Überwachungsdaten umzugehen und daran zu arbeiten, und das erfordert fortschrittliche Überwachungstools. Fast jeder Dienst ist jetzt online. Und Server spielen eine wichtige Rolle bei der Bereitstellung dieser Dienste. Sie können es sich nicht leisten, ein paar Stunden zu warten, um zu wissen, dass Ihr Server aufgrund der hohen CPU-Auslastung ausgefallen ist. Sie müssen die CPU-Auslastung und andere Servermetriken kontinuierlich überwachen.

Kontinuierliche Überwachung

Die Überprüfung der Server-CPU-Auslastung zu einem bestimmten Zeitpunkt ist nicht von großem Nutzen. Sie benötigen eine Lösung, um die CPU-Auslastung des Servers kontinuierlich zu überwachen. Fast jedes Serverbetriebssystem verfügt über einen Leistungsmonitor, mit dem Sie die CPU-Auslastung zu einem bestimmten Zeitpunkt anzeigen können. Bei der Überwachung der Server-CPU-Auslastung sollten Sie nach Spitzen suchen, da plötzliche Änderungen der CPU-Auslastung darauf hindeuten, dass etwas Außergewöhnliches passiert ist.

Neben der Überwachung der CPU-Auslastung in Echtzeit möchten Sie diese Daten speichern, damit Sie sie in verschiedenen Intervallen visualisieren und analysieren können. Um die CPU-Nutzungsstatistiken optimal zu nutzen, sollten Sie in regelmäßigen Abständen (vorzugsweise in Echtzeit) CPU-Nutzungsdaten sammeln, indem Sie Protokolle generieren und diese in Form von Diagrammen visualisieren. Wir haben gerade über eine Metrik gesprochen, aber vergessen Sie nicht, dass die Server-CPU-Auslastung nicht das einzige ist, was überwacht werden muss. Verwenden Sie Scalyr, um alles, was Sie brauchen, an einem Ort zu erhalten.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht.