Unix / Linux - System Performance

Hallo dort, angehende Technikbegeisterte! Als dein freundlicher Nachbarschaftsinformatiklehrer freue ich mich, dich durch die faszinierende Welt der Unix/Linux-Systemleistung zu führen. Mach dir keine Sorgen, wenn du neu im Programmieren bist – wir beginnen mit den Grundlagen und arbeiten uns hoch. Also, hole dir eine Tasse Kaffee (oder Tee, wenn das dein Ding ist) und tauchen wir ein!

Unix / Linux - System Performance

Leistungskomponenten

Bevor wir mit dem Tampering unserer Systeme beginnen, ist es entscheidend, zu verstehen, was die Systemleistung ausmacht. Stell dir deinen Computer als ein fein abgestimmtes Orchester vor – jede Komponente spielt eine wichtige Rolle bei der Schaffung einer harmonischen Aufführung.

1. CPU-Auslastung

Die Central Processing Unit (CPU) ist wie der Dirigent unseres Orchesters. Sie ist verantwortlich für die Ausführung von Anweisungen und die Koordination aller anderen Komponenten. Wenn wir über CPU-Auslastung sprechen, beziehen wir uns darauf, wie beschäftigt dieser Dirigent ist.

2. Speicherverwendung

Speicher, oder RAM, ist wie die Notenblätter für unser Orchester. Er speichert Daten, auf die die CPU schnellen Zugriff benötigt. Wenn wir den Speicher erschöpfen, kann unsere Leistung erheblich langsamer werden.

3. Disk I/O

Disk Input/Output (I/O) ist wie der Prozess, bei dem Musiker neue Instrumente oder Notenblätter abholen. Es beinhaltet das Lesen oder Schreiben auf die Festplatte, was im Vergleich zum Zugriff auf RAM eine langsameren Vorgang sein kann.

4. Netzwerkleistung

Netzwerkleistung ist ähnlich wie das Hören und Synchronisieren unseres Orchesters. Sie bezieht sich auf die Geschwindigkeit und Effizienz des Datenverkehrs über das Netzwerk.

Leistungstools

Nun, da wir die Komponenten verstehen, schauen wir uns einige Tools an, die wir verwenden können, um die Leistung unseres Systems zu messen und zu verbessern. Ich mag es, diese als die Stimmungsinstrumente unseres Orchesters zu betrachten.

1. top-Befehl

Der top-Befehl ist wie das Armaturenbrett für dein System. Er bietet eine Echtzeitansicht der laufenden Prozesse und Systemressourcen.

$ top

Dieser Befehl wird eine fortlaufend aktualisierte Liste von Prozessen anzeigen, standardmäßig nach CPU-Auslastung sortiert. Lassen Sie uns das, was Sie sehen werden, auseinandernehmen:

  • PID: Prozess-ID
  • USER: Benutzer, der den Prozess besitzt
  • PR: Priorität
  • NI: Nice-Wert (beeinflusst die Priorität)
  • VIRT: Virtueller Speicher verwendet
  • RES: Physischer Speicher verwendet
  • SHR: Geteilter Speicher
  • S: Prozessstatus
  • %CPU: CPU-Auslastung
  • %MEM: Speicherauslastung
  • TIME+: Gesamte CPU-Zeit
  • COMMAND: Kommandoname

2. vmstat-Befehl

Der vmstat-Befehl ist wie ein Stethoskop für das Herz deines Systems – er berichtet Informationen über Prozesse, Speicher, Paging, Block-I/O, Trap und CPU-Aktivität.

$ vmstat 2 5

Dieser Befehl wird Systemstatistiken alle 2 Sekunden anzeigen, für 5 Iterationen. Die Ausgabe umfasst:

  • r: Anzahl der Prozesse, die auf Laufzeit warten
  • b: Anzahl der Prozesse im nicht unterbrechbaren Schlaf
  • swpd: Menge des verwendeten virtuellen Speichers
  • free: Menge des ungenutzten Speichers
  • buff: Menge des als Puffer verwendeten Speichers
  • cache: Menge des als Cache verwendeten Speichers
  • si: Menge des aus dem Speicher in die Festplatte geswapten Speichers
  • so: Menge des in die Festplatte geswapten Speichers
  • bi: Blöcke, die von einem Blockgerät empfangen wurden
  • bo: Blöcke, die an ein Blockgerät gesendet wurden
  • in: Anzahl der Unterbrechungen pro Sekunde
  • cs: Anzahl der Kontextwechsel pro Sekunde
  • us: Zeit, die für die Ausführung von Nicht-Kernelscode aufgewendet wurde
  • sy: Zeit, die für die Ausführung von Kernelcode aufgewendet wurde
  • id: Zeit, die im Ruhezustand verbracht wurde
  • wa: Zeit, die darauf gewartet wurde, dass I/O abgeschlossen ist

3. iostat-Befehl

Der iostat-Befehl ist wie ein Tachometer für deine Festplatten. Er berichtet CPU-Statistiken und Input/Output-Statistiken für Geräte und Partitionen.

$ iostat -x 2 5

Dieser Befehl wird erweiterte Statistiken alle 2 Sekunden anzeigen, für 5 Iterationen. Die Ausgabe umfasst:

  • Device: Gerätename
  • rrqm/s: Gezählte Leseanfragen pro Sekunde
  • wrqm/s: Gezählte Schreibanfragen pro Sekunde
  • r/s: Lesevorgänge pro Sekunde
  • w/s: Schreibvorgänge pro Sekunde
  • rkB/s: Kilobytes gelesen pro Sekunde
  • wkB/s: Kilobytes geschrieben pro Sekunde
  • avgrq-sz: Durchschnittliche Anforderungsgröße in Sektoren
  • avgqu-sz: Durchschnittliche Warteschlangenlänge
  • await: Durchschnittliche Zeit für I/O-Anfragen
  • svctm: Durchschnittliche Servicezeit
  • %util: Prozentsatz der CPU-Zeit, während der I/O-Anfragen gestellt wurden

4. netstat-Befehl

Der netstat-Befehl ist wie ein Verkehrsleiter für dein Netzwerk. Er zeigt Netzwerkverbindungen, Routentabellen, Schnittstellenstatistiken, Maskierungsverbindungen und Multicast-Mitgliedschaften an.

$ netstat -tuln

Dieser Befehl wird anzeigen:

  • Aktive Internetverbindungen (TCP und UDP)
  • Horchende Sockets
  • Numerische Adressen und Portnummern

Die Ausgabe umfasst:

  • Proto: Protokoll (TCP oder UDP)
  • Recv-Q: Daten in der Warteschlange zum Empfangen
  • Send-Q: Daten in der Warteschlange zum Senden
  • Local Address: Lokale Socket-Endung
  • Foreign Address: Entfernte Socket-Endung
  • State: Zustand des Sockets

5. sar-Befehl

Der sar (System Activity Reporter)-Befehl ist wie ein Schwarzes Brett für dein System. Er sammelt, berichtet und speichert Systemaktivitätsinformationen.

$ sar -u 2 5

Dieser Befehl wird CPU-Auslastungsstatistiken alle 2 Sekunden anzeigen, für 5 Iterationen. Die Ausgabe umfasst:

  • %user: Prozentsatz der CPU-Auslastung auf Benutzerebene
  • %nice: Prozentsatz der CPU-Auslastung auf Benutzerebene mit Nice-Priorität
  • %system: Prozentsatz der CPU-Auslastung auf Systemebene
  • %iowait: Prozentsatz der Zeit, in der die CPU im Ruhezustand war, während das System eine ausstehende Festplatten-I/O-Anfrage hatte
  • %steal: Prozentsatz der Zeit, die der virtuelle CPU in einer obligatorischen Warteschleife verbracht hat, während der Hypervisor einen anderen virtuellen Prozessor bediente
  • %idle: Prozentsatz der Zeit, in der die CPU im Ruhezustand war und das System keine ausstehende Festplatten-I/O-Anfrage hatte

Hier ist eine Tabelle, die diese Leistungstools zusammenfasst:

Befehl Zweck Wichtige Informationen
top Echtzeit-Systemmonitor Prozesliste, CPU-Auslastung, Speicherauslastung
vmstat Virtuelle Speicherstatistiken Prozess, Speicher, Paging, I/O, CPU-Aktivität
iostat I/O-Statistiken CPU-Statistiken, Geräte-I/O-Statistiken
netstat Netzwerkstatistiken Netzwerkverbindungen, Routentabellen, Schnittstellenstatistiken
sar Systemaktivitätsberichter CPU-Auslastung, Speicherauslastung, I/O-Aktivität, Netzwerkaktivität

Erinnere dich daran, dass das Beherrschen dieser Tools wie das Spielen eines Instruments ist – es erfordert Übung! Lass dich nicht entmutigen, wenn es initially überwältigend scheint. Beginne mit einem Tool, verstehe seine Ausgabe gründlich und gehe dann zum nächsten über.

In meinen Jahren des Unterrichtens habe ich festgestellt, dass Schüler, die regelmäßig mit diesen Tools auf ihren eigenen Systemen experimentieren, eine viel tiefere Kenntnis der Systemleistung entwickeln. Es ist wie das Hören der einzelnen Instrumente in einem Orchester – plötzlich kannst du genau feststellen, wo Verbesserungen vorgenommen werden können.

Also, liebe Schüler, ich ermutige dich, deinen Terminal zu starten und zu erkunden. Wer weiß? Vielleicht wirst du ja der nächste große Systemleistungsdirektor!

Credits: Image by storyset