GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Identifizieren Sie Linux-Leistungsengpässe mit Open-Source-Tools

Computer sind integrierte Systeme, die nur so schnell arbeiten wie ihre langsamste Hardwarekomponente. Wenn eine Komponente weniger leistungsfähig ist als die anderen – wenn sie ins Hintertreffen gerät und nicht mithalten kann – kann sie Ihr gesamtes System behindern. Das ist ein Leistungsengpass . Das Entfernen eines ernsthaften Engpasses kann Ihr System zum Fliegen bringen.

Dieser Artikel erklärt, wie Sie Hardware-Engpässe in Linux-Systemen identifizieren. Die Techniken gelten sowohl für Personalcomputer als auch für Server. Mein Schwerpunkt liegt auf PCs – serverspezifische Engpässe in Bereichen wie LAN-Management oder Datenbanksysteme werde ich nicht behandeln. Dazu gehören oft spezielle Tools.

Ich werde auch nicht viel über Lösungen sprechen. Das ist ein zu großes Thema für diesen Artikel. Stattdessen schreibe ich einen Folgeartikel mit Leistungsoptimierungen.

Ich werde nur Open-Source-Tools für grafische Benutzeroberflächen (GUI) verwenden, um die Arbeit zu erledigen. Die meisten Artikel über Linux-Engpässe sind ziemlich kompliziert. Sie verwenden spezialisierte Befehle und tauchen tief in arkane Details ein.

Die GUI-Tools, die Open Source anbietet, machen es einfach, viele Engpässe zu identifizieren. Mein Ziel ist es, Ihnen einen schnellen, einfachen Ansatz zu bieten, den Sie überall verwenden können.

Wo anfangen

Ein Computer besteht aus sechs wichtigen Hardwareressourcen:

  • Prozessoren
  • Erinnerung
  • Speicherung
  • USB-Anschlüsse
  • Internetverbindung
  • Grafikprozessor

Sollte eine Ressource schlecht funktionieren, kann dies zu einem Leistungsengpass führen. Um einen Engpass zu identifizieren, müssen Sie diese sechs Ressourcen überwachen.

Open Source bietet eine Fülle von Tools, um die Arbeit zu erledigen. Ich verwende den GNOME-Systemmonitor. Die Ausgabe ist leicht verständlich und in den meisten Repositories zu finden.

Starten Sie es und klicken Sie auf Ressourcen Tab. Sie können viele Leistungsprobleme sofort erkennen.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Die Ressourcen Panel zeigt drei Abschnitte:CPU History , Speicher- und Swap-Verlauf und Netzwerkverlauf . Ein kurzer Blick sagt Ihnen sofort, ob Ihre Prozessoren überlastet sind, Ihr Computer nicht genügend Arbeitsspeicher hat oder Sie Ihre gesamte Internetbandbreite aufbrauchen.

Ich werde diese Probleme unten untersuchen. Überprüfen Sie vorerst zuerst den Systemmonitor, wenn Ihr Computer langsamer wird. Es weist Sie sofort auf die häufigsten Leistungsprobleme hin.

Sehen wir uns nun an, wie Engpässe in bestimmten Bereichen identifiziert werden können.

So identifizieren Sie Prozessorengpässe

Um einen Engpass zu erkennen, müssen Sie zunächst wissen, welche Hardware Sie haben. Open Source bietet hierfür mehrere Tools an. Ich mag HardInfo, weil seine Bildschirme einfach zu lesen sind und es sehr beliebt ist.

Starten Sie HardInfo. Sein Computer -> Zusammenfassung Panel identifiziert Ihre CPU und informiert Sie über ihre Kerne, Threads und Geschwindigkeiten. Es identifiziert auch Ihr Motherboard und andere Computerkomponenten.

HardInfo zeigt, dass dieser Computer einen physischen CPU-Chip hat. Dieser Chip enthält zwei Prozessoren oder Kerne. Jeder Kern unterstützt zwei Threads oder logische Prozessoren. Das sind insgesamt vier logische Prozessoren – genau das, was der CPU-Verlaufsabschnitt von System Monitor in Abb. 1 gezeigt hat.

Ein Prozessorengpass tritt auf, wenn Prozessoren für ihre Zeit nicht auf Anfragen reagieren können. Sie sind schon beschäftigt.

Sie können dies erkennen, wenn System Monitor eine logische Prozessorauslastung von über 80 % oder 90 % für einen längeren Zeitraum anzeigt. Hier ist ein Beispiel, bei dem drei der vier logischen Prozessoren bei 100 % Auslastung überlastet sind. Das ist ein Engpass, da nicht viel CPU für andere Aufgaben übrig bleibt.

Welche App verursacht das Problem?

Sie müssen herausfinden, welche Programme die gesamte CPU verbrauchen. Klicken Sie auf Prozesse des Systemmonitors Tab. Klicken Sie dann auf % CPU Header, um die Prozesse nach ihrem CPU-Verbrauch zu sortieren. Sie sehen, welche Apps Ihr System drosseln.

Die drei wichtigsten Prozesse verbrauchen jeweils 24 % der Gesamtmenge CPU-Ressource. Da es vier logische Prozessoren gibt, bedeutet dies, dass jeder einen ganzen Prozessor verbraucht. Das ist genauso wie Abb. 3 zeigt.

Die Prozesse Panel identifiziert ein Programm namens analytical_AI als Täter. Sie können im Bedienfeld mit der rechten Maustaste darauf klicken, um weitere Details zu seinem Ressourcenverbrauch anzuzeigen, einschließlich der Speichernutzung, der geöffneten Dateien, seiner Eingabe-/Ausgabedetails und mehr.

Wenn Ihre Anmeldung über Administratorrechte verfügt, können Sie den Vorgang verwalten. Sie können seine Priorität ändern und ihn anhalten, fortsetzen, beenden oder beenden. Hier könnten Sie also sofort Ihren Engpass beheben.

Wie beheben Sie Verarbeitungsengpässe? Neben der Verwaltung des fehlerhaften Prozesses in Echtzeit könnten Sie verhindern, dass der Engpass auftritt. Beispielsweise können Sie den Angreifer durch eine andere App ersetzen, sie umgehen, Ihr Verhalten bei der Verwendung dieser App ändern, die App außerhalb der Geschäftszeiten planen, ein zugrunde liegendes Speicherproblem beheben, die Leistung der App oder Ihrer Systemsoftware optimieren oder ein Upgrade durchführen Ihre Hardware. Das ist zu viel, um es hier zu behandeln, also werde ich diese Optionen in meinem nächsten Artikel untersuchen.

Häufige Prozessorengpässe

Beim Überwachen Ihrer CPUs mit System Monitor werden Sie auf mehrere häufige Engpässe stoßen.

Manchmal kommt es bei einem logischen Prozessor zu Engpässen, während alle anderen nur wenig ausgelastet sind. Dies bedeutet, dass Sie eine App haben, die nicht intelligent genug codiert ist, um mehr als einen logischen Prozessor zu nutzen, und den verwendeten Prozessor maximal auslastet. Diese App wird länger dauern, bis sie fertig ist, als wenn sie mehr Prozessoren verwenden würde. Andererseits lässt es zumindest Ihre anderen Prozessoren für andere Arbeiten frei und übernimmt nicht Ihren Computer.

Möglicherweise sehen Sie auch einen logischen Prozessor, der für immer bei 100 % Auslastung hängen bleibt. Entweder ist es sehr ausgelastet oder ein Prozess hängt. Der Weg, um festzustellen, ob es hängen geblieben ist, besteht darin, dass der Prozess niemals Festplattenaktivitäten ausführt (wie der Systemmonitor Processes Bedienfeld wird angezeigt).

Schließlich werden Sie vielleicht feststellen, dass auch Ihr Arbeitsspeicher voll ausgelastet ist, wenn alle Ihre Prozessoren einen Engpass haben. Speichermangel führt manchmal zu Prozessorengpässen. In diesem Fall möchten Sie das zugrunde liegende Speicherproblem lösen, nicht das symptomatische CPU-Problem.

So identifizieren Sie Speicherengpässe

Angesichts der großen Speichermenge in modernen PCs sind Speicherengpässe viel seltener als früher. Sie können jedoch immer noch auf sie stoßen, wenn Sie speicherintensive Programme ausführen, insbesondere wenn Sie einen Computer haben, der nicht viel Arbeitsspeicher (RAM) enthält.

Linux verwendet Arbeitsspeicher sowohl für Programme als auch zum Zwischenspeichern von Festplattendaten. Letzteres beschleunigt den Datenzugriff auf die Festplatte. Linux kann diesen Speicher jederzeit zurückfordern, wenn es ihn für die Programmnutzung benötigt.

Die Ressourcen des System Monitors Panel zeigt Ihren Gesamtspeicher und wie viel davon verwendet wird. In den Prozessen können Sie die Speichernutzung einzelner Prozesse sehen.

Hier ist der Teil der Ressourcen des Systemmonitors Panel, das die Gesamtspeichernutzung verfolgt:

Rechts neben Memory siehst du Swap. Dies ist Speicherplatz, den Linux verwendet, wenn der Arbeitsspeicher knapp wird. Es schreibt Speicher auf die Festplatte, um den Betrieb fortzusetzen, und verwendet Swap effektiv als langsamere Erweiterung Ihres Arbeitsspeichers.

Die beiden Speicherleistungsprobleme, auf die Sie achten sollten, sind:

  1. Der Arbeitsspeicher scheint weitgehend belegt zu sein, und Sie sehen häufige oder zunehmende Aktivitäten im Auslagerungsbereich.
  2. Sowohl Speicher als auch Swap sind weitgehend aufgebraucht.

Situation 1 bedeutet langsamere Leistung, da Swap immer langsamer als Speicher ist. Ob Sie es für ein Performance-Problem halten, hängt von vielen Faktoren ab (z. B. wie aktiv Ihr Swap Space ist, seine Geschwindigkeit, Ihre Erwartungen usw.). Meiner Meinung nach ist alles andere als die Verwendung von Token-Swaps für einen modernen PC inakzeptabel.

In Situation 2 werden sowohl Speicher als auch Swap weitgehend verwendet. Dies ist ein Speicherengpass. Der Computer reagiert nicht mehr. Es könnte sogar in einen Zustand des Thrashing geraten , wo es kaum mehr als Speicherverwaltung leistet.

Abb. 6 oben zeigt einen alten Computer mit nur 2 GB RAM. Als die Speicherauslastung 80 % überstieg, begann das System mit dem Schreiben in den Auslagerungsbereich. Die Reaktionsfähigkeit nahm ab. Dieser Screenshot zeigt eine Speicherauslastung von über 90 % und der Computer ist unbrauchbar.

Die ultimative Antwort auf Speicherprobleme ist, entweder weniger davon zu verbrauchen oder mehr zu kaufen. Ich werde Lösungen in meinem Folgeartikel besprechen.

So identifizieren Sie Speicherengpässe

Speicher gibt es heute in verschiedenen Varianten von Solid-State- und mechanischen Festplatten. Zu den Geräteschnittstellen gehören PCIe, SATA, Thunderbolt und USB. Unabhängig davon, welche Art von Speicher Sie haben, verwenden Sie das gleiche Verfahren, um Festplattenengpässe zu identifizieren.

Beginnen Sie mit dem Systemmonitor. Seine Prozesse Panel zeigt die Input/Output-Raten für einzelne Prozesse an. So können Sie schnell erkennen, welche Prozesse die meisten Festplatten-E/A ausführen.

Aber das Tool zeigt nicht die gesamte Datenübertragungsrate pro Datenträger. an Sie müssen die Gesamtlast auf einer bestimmten Festplatte sehen, um festzustellen, ob diese Festplatte einen Speicherengpass darstellt.

Verwenden Sie dazu den Befehl atop. Es ist in den meisten Linux-Repositories verfügbar.

Geben Sie einfach atop ein an der Eingabeaufforderung der Befehlszeile. Die folgende Ausgabe zeigt dieses Gerät sdb ist busy 101% . Es hat eindeutig seine Leistungsgrenze erreicht und schränkt ein, wie schnell Ihr System seine Arbeit erledigen kann.

Beachten Sie, dass eine der CPUs 85 % der Zeit auf die Festplatte wartet, um ihre Arbeit zu erledigen (cpu001 w 85% ). Dies ist typisch, wenn ein Speichergerät zum Engpass wird. Tatsächlich schauen viele zuerst auf CPU-E/A-Wartezeiten, um Speicherengpässe zu erkennen.

Um also einen Speicherengpass einfach zu identifizieren, verwenden Sie atop Befehl. Verwenden Sie dann die Prozesse Panel auf System Monitor, um die einzelnen Prozesse zu identifizieren, die den Engpass verursachen.

So identifizieren Sie USB-Port-Engpässe

Manche Leute benutzen ihre USB-Anschlüsse den ganzen Tag. Sie prüfen jedoch nie, ob diese Ports optimal genutzt werden. Unabhängig davon, ob Sie eine externe Festplatte, einen Speicherstick oder etwas anderes anschließen, sollten Sie sicherstellen, dass Sie die maximale Leistung von Ihren über USB angeschlossenen Geräten erhalten.

Diese Grafik zeigt warum. Mögliche USB-Datenübertragungsraten variieren enorm .

USB-Geräte von HardInfo Registerkarte zeigt die USB-Standards an, die Ihr Computer unterstützt. Die meisten Computer bieten mehr als eine Geschwindigkeit. Wie können Sie die Geschwindigkeit eines bestimmten Ports feststellen? Anbieter kennzeichnen sie farblich, wie in der Tabelle gezeigt. Oder Sie können in der Dokumentation Ihres Computers nachsehen.

Um die tatsächlichen Geschwindigkeiten zu sehen, testen Sie sie mit dem Open-Source-Programm GNOME Disks. Starten Sie einfach GNOME Disks und wählen Sie die Benchmark Disk aus Funktion und führen Sie einen Benchmark aus. Das gibt Ihnen die maximale reale Geschwindigkeit an, die Sie für einen Anschluss erhalten, wenn das spezifische Gerät daran angeschlossen ist.

Je nachdem, welches Gerät Sie anschließen, erhalten Sie möglicherweise unterschiedliche Übertragungsgeschwindigkeiten für einen Port. Die Datenraten hängen von der jeweiligen Kombination aus Port und Gerät ab.

Beispielsweise verwendet ein Gerät, das mit 3,1-Geschwindigkeit fliegen könnte, einen 2,0-Anschluss – mit 2,0-Geschwindigkeit – wenn Sie es an diesen anschließen. (Und es wird Ihnen nicht sagen, dass es langsamer läuft!) Umgekehrt, wenn Sie ein USB 2.0-Gerät an einen 3.1-Anschluss anschließen, funktioniert es, aber mit 2.0-Geschwindigkeit. Um schnelles USB zu erhalten, müssen Sie also sicherstellen, dass sowohl der Anschluss als auch das Gerät dies unterstützen. GNOME Disks bietet Ihnen die Möglichkeit, dies zu überprüfen.

Um einen USB-Verarbeitungsengpass zu identifizieren, verwenden Sie dasselbe Verfahren wie für Solid-State- und Festplatten. Führen Sie atop aus Befehl, um einen USB-Speicherengpass zu erkennen. Verwenden Sie dann den Systemmonitor, um die Details zu den problematischen Prozessen abzurufen.

So erkennen Sie Bandbreitenengpässe im Internet

Der Systemmonitor Ressourcen zeigt Ihnen in Echtzeit an, wie schnell Ihre Internetverbindung ist (siehe Abb. 1).

Es gibt großartige Python-Tools, mit denen Sie Ihre maximale Internetgeschwindigkeit testen können, aber Sie können sie auch auf Websites wie Speedtest, Fast.com und Speakeasy testen. Schließen Sie für beste Ergebnisse alles und führen Sie nur aus der Geschwindigkeitstest; Schalten Sie Ihr VPN aus; Tests zu verschiedenen Tageszeiten durchführen; und vergleichen Sie die Ergebnisse mehrerer Testseiten.

Vergleichen Sie dann Ihre Ergebnisse mit den Download- und Upload-Geschwindigkeiten, die Ihr Anbieter behauptet. Auf diese Weise können Sie sicher sein, dass Sie die Geschwindigkeiten erhalten, für die Sie bezahlen.

Wenn Sie einen separaten Router haben, testen Sie mit und ohne ihn. Das kann Ihnen sagen, ob Ihr Router ein Engpass ist. Wenn Sie WLAN verwenden, testen Sie es mit und ohne (indem Sie Ihren Laptop direkt mit dem Modem verkabeln). Ich habe oft gesehen, wie sich Leute über ihren Internetanbieter beschwert haben, obwohl sie tatsächlich einen WLAN-Engpass haben, den sie selbst beheben könnten.

Wenn ein Programm Ihre gesamte Internetverbindung verbraucht, möchten Sie wissen, welches. Finden Sie es, indem Sie die nethogs verwenden Befehl. Es ist in den meisten Repositories verfügbar.

Neulich zeigte mein Systemmonitor plötzlich, dass mein Internetzugang anstieg. Ich habe gerade nethogs eingegeben in der Befehlszeile und identifizierte den Bandbreitenverbraucher sofort als Clamav Antivirus-Update.

So identifizieren Sie Engpässe bei der Grafikverarbeitung

Wenn Sie Ihren Monitor an die Hauptplatine auf der Rückseite Ihres Desktop-Computers anschließen, verwenden Sie integrierte Grafik . Wenn Sie es hinten an eine Karte anschließen, haben Sie ein dediziertes Grafiksubsystem. Die meisten nennen es eine Grafikkarte oder Grafikkarte. Bei Desktop-Computern sind Zusatzkarten in der Regel leistungsfähiger und teurer als Motherboard-Grafikkarten. Laptops verwenden immer Onboard-Grafik.

PCI-Geräte von HardInfo Panel informiert Sie über Ihren Grafikprozessor (GPU). Es zeigt auch die Menge an dediziertem Videospeicher an, den Sie haben (suchen Sie nach dem Speicher, der als "vorabrufbar" gekennzeichnet ist).

CPUs und GPUs arbeiten sehr eng zusammen. Zur Vereinfachung bereitet die CPU Frames zum Rendern durch die GPU vor, dann rendert die GPU die Frames.

Ein GPU-Engpass tritt auf, wenn Ihre CPUs auf eine GPU warten, die zu 100 % ausgelastet ist.

Um dies zu erkennen, müssen Sie die CPU- und GPU-Auslastungsraten überwachen. Open-Source-Monitore wie Conky und Glances tun dies, wenn ihre Erweiterungen mit Ihrem Grafikchipsatz funktionieren.

Schauen Sie sich dieses Beispiel von Conky an. Sie können sehen, dass dieses System viel verfügbare CPU hat. Die GPU ist nur zu 25% ausgelastet. Stellen Sie sich vor, diese GPU-Zahl wäre stattdessen nahe 100 %. Dann wüssten Sie, dass die CPUs auf die GPU warteten, und Sie hätten einen GPU-Engpass.

Auf einigen Systemen benötigen Sie ein herstellerspezifisches Tool zur Überwachung Ihrer GPU. Sie können alle von GitHub heruntergeladen werden und werden in diesem Artikel über GPU-Überwachungs- und Diagnose-Befehlszeilentools beschrieben.

Zusammenfassung

Computer bestehen aus einer Sammlung integrierter Hardwareressourcen. Sollte einer von ihnen in seiner Arbeitslast weit hinter den anderen zurückfallen, entsteht ein Leistungsengpass. Das kann Ihr gesamtes System zurückhalten. Sie müssen in der Lage sein, Engpässe zu identifizieren und zu beheben, um eine optimale Leistung zu erzielen.

Vor nicht allzu langer Zeit erforderte die Identifizierung von Engpässen tiefes Fachwissen. Die heutigen Open-Source-GUI-Leistungsmonitore machen es ziemlich einfach.

In meinem nächsten Artikel werde ich spezifische Möglichkeiten zur Verbesserung der Leistung Ihres Linux-PCs erörtern. Teilen Sie in der Zwischenzeit bitte Ihre eigenen Erfahrungen in den Kommentaren mit.


Linux
  1. Identifizieren Sie Sicherheitseigenschaften unter Linux mit checksec

  2. 6 Open-Source-Tools und Tipps zum Sichern eines Linux-Servers für Anfänger

  3. Top 5 der von Geeks empfohlenen Open-Source-Linux-Caching-Tools

  4. Verwenden von iostat zur Überwachung der Systemleistung in Linux (Beispiele enthalten)

  5. Linux-Warteschlangensystem

Linux – Diagramm des Linux-Kernels vs. Performance-Tools?

Top 10 der besten Open-Source-Spracherkennungstools für Linux

Die 25 besten Open-Source-Sicherheitstools zum Schutz Ihres Systems

Die 10 Open-Source-Dateinavigationstools für Linux-Systeme

Die 10 besten Open-Source-Renderer für Linux-Systeme

Top 10 Open-Source-Tools zur Fehler- und Problemverfolgung für Linux