Die CPU-Leistung ist ein Aspekt der Messung der Leistung eines Systems. Die Überwachung der CPU-Leistung ist wichtig, um Prozesse in jedem System zu debuggen, Systemressourcen zu verwalten, Systementscheidungen zu treffen sowie Systeme in Echtzeit zu bewerten und zu untersuchen.
Es stehen zahlreiche Tools zur Überwachung und Anzeige zur Verfügung CPU-Leistung. Betriebssysteme verfügen über integrierte Systemaufrufe, auf die sich diese Tools stützen, um die Leistungswerte zu extrahieren.
In diesem Lernprogramm werden wir das beste Tool zur Überwachung der CPU-Auslastung und deren Verwendung in Linux-basierten Distributionen untersuchen.
1) Top
Der Befehl top zeigt eine Echtzeitansicht der leistungsbezogenen Daten aller laufenden Prozesse in einem System an. Standardmäßig aktualisiert der Befehl top die Daten alle 5 Sekunden. Geben Sie im Terminal „top“ ein, um die statistischen Daten zur Leistung eines Systems anzuzeigen.
# top
Um die Ausgabe des Befehls top zu ändern, drücken Sie:
„P“ zum Sortieren nach CPU-Auslastung.
„I“ zum Entfernen der inaktiven Prozesse von der Anzeige und zum Zurücksetzen drücken Sie erneut „I“.
„M“ zum Sortieren der Daten nach Speichernutzung.
„S“ zum Sortieren nach der Laufzeit der Prozesse.
„P“ zum Sortieren nach CPU-Auslastung.
„U“ zum Anzeigen von Prozessen, die einem bestimmten Benutzer gehören.
„K“ zum Beenden von Prozessen.
„R“ zum Renice von Prozessen.
2) Iostat
Der Befehl iostat listet die CPU-Auslastung, die Geräteauslastung und die Auslastung des Netzwerkdateisystems auf. Die durchschnittliche CPU-Auslastung dieses Dienstprogramms zeigt das System seit dem letzten Neustart an. Wenn Sie den folgenden Befehl ohne Optionen ausführen, werden alle drei Berichte angezeigt.
# iostat
Um den einzelnen Bericht aufzulisten, verwenden Sie die Schalter -c, -d und -h für die CPU-Auslastung , Gerätenutzung und Auslastung des Netzwerkdateisystems. Der folgende Befehl unterteilt die CPU-Auslastung in Benutzerprozesse, Systemprozesse, E / A-Wartezeit und Leerlaufzeit.
# iostat -c
Der folgende Befehl zeigt erweiterte Statistiken an ( -x), wie oft (-t) jeder Bericht für die CPU-Auslastung angezeigt werden soll (-c).
# iostat -xtc 5 2
3) Vmstat
Der Befehl vmstat zeigt Statistiken zu Systemprozessen, Speicher, Swap, E / A und der CPU-Leistung an. Zur Anzeige von Statistiken werden die Daten vom letzten Ausführen des Befehls bis zur Gegenwart erfasst. Falls der Befehl nie ausgeführt wird, werden die Daten vom letzten Neustart bis zur aktuellen Zeit gespeichert.
Auf mehreren CPU-Systemen mittelt vmstat die Anzahl der CPUs in der Ausgabe. Der Befehl vmstat aktualisiert seine Ausgabe wie der Befehl top.
Der folgende Befehl aktualisiert seinen Bericht alle 5 Sekunden, bis ein Interrupt auftritt.
# vmstat 5
Der folgende Befehl zeigt die Daten an, die alle 5 Sekunden aktualisiert werden, und die Werte werden alle 1 Sekunde neu gemessen und gemeldet.
# vmstat 1 5
Die In der ersten Zeile werden die Durchschnittswerte seit dem letzten Neustart des Computers gedruckt. Die restlichen Zeilen zeigen ihre jeweiligen aktuellen Werte an. Ein normaler Benutzer kann den Befehl vmstat ausführen.
4) Mpstat
Mpstat ist Teil des sysstat-Pakets unter Linux. Der Befehl mpstat schreibt in die Standardausgabe über Aktivitäten für jeden verfügbaren Prozessor, wobei Prozessor 0 der erste ist. Wenn keine Aktivität ausgewählt wurde, ist der Standardbericht der CPU-Auslastungsbericht.
mpstat ohne Option zeigt die globalen durchschnittlichen Aktivitäten aller CPUs an.
# mpstat
mpstat mit der Option -p und „ALL“ listet Statistiken über alle CPUs nacheinander ab 0 auf.
# mpstat -P ALL
Der folgende Befehl wird ausgeführt Listen Sie die durchschnittliche CPU-Auslastung viermal auf, jeweils nach 2 Sekunden.
# mpstat -P ALL 2 4
5) Sar
Der sar ist ein Tool zur Leistungsüberwachung für Sammeln, Anzeigen und Aufzeichnen von Leistungsdaten und Auflisten, was ein System ständig tut. Der Befehl Sar kann einen Bericht erstellen und per E-Mail an den Systemadministrator senden. Die von sar gemeldeten Statistiken umfassen unter anderem E / A-Übertragungsraten, Paging-Aktivitäten, prozessbezogene Aktivitäten, Interrupts, Netzwerkaktivitäten, Speicher- und Swap-Space-Auslastung, CPU-Auslastung, Kernel-Aktivitäten und TTY-Statistiken. Führen Sie sar ohne Option aus und überprüfen Sie die Ausgabe. Die Standardausgabelistenstatistik für alle 10 Minuten und ein endgültiger Durchschnitt.
# sar
Zeigt die CPU-Statistik dreimal im Abstand von 2 Sekunden an.
# sar 2 3
Der folgende Befehl zeigt die kumulative Echtzeit-CPU-Auslastung aller CPUs alle 3 Sekunden insgesamt dreimal an.
# sar -u 2 3
Die Option „-P ALL“ zeigt Statistiken für ALLE einzelnen Kerne an. Wenn Ihr System 4 Kerne hat, enthält die „CPU-Spalte“ die Nummer 0, 1, 2, 3, die die entsprechenden CPU-Kernnummern angibt.Die Option „2 3“ zeigt die Statistiken dreimal alle 2 Sekunden an.
# sar -P ALL 2 3
Die Option „-P 2“ zeigt alle 2 Sekunden Statistiken für den dritten Kern an
# sar -P 2 2 3
6) CoreFreq
CoreFreq ist eine Software zur Überwachung der CPU-Leistung, die für 64-Bit-Prozessoren mit Intel-Architekturen entwickelt wurde Atom, Core2, Nehalem, SandyBridge und Superior, AMD Family. Der CoreFreq bietet ein Framework zum Abrufen von CPU-Daten mit hoher Präzision. Das Kernelmodul, der Daemon und die Userland-Befehlszeilenschnittstelle (CLI) sind die drei Teile von Corefreq. Das Kernelmodul hat vollen Zugriff auf den Host. Es liegt in seiner Verantwortung, die Daten auf niedriger Ebene zu sammeln. Der Userland-Daemon sammelt die Daten. Sie sollten Root-Benutzer sein, um den Daemon auszuführen. Schließlich verfügt CoreFreq über eine Terminalschnittstelle, über die Daten in einem für Menschen lesbaren Format gemeldet werden können. Dieses CLI-Tool ist ein gewöhnlicher Prozess und kann vom Endbenutzer verwendet werden.
Voraussetzung
i) CoreFreq verwendet den Low-Level-Zähler. Daher sollten Sie zuerst den NMI-Watchdog über / deaktivieren etc / default / grub. Bearbeiten Sie / etc / default / grub, fügen Sie das Kernel-Befehlszeilenargument „nmi_watchdog = 0“ hinzu und führen Sie anschließend update-grub aus.
# vi /etc/default/grub
.................... .................... GRUB_CMDLINE_LINUX="nmi_watchdog=0" .................... ....................
# update-grub && reboot
ii) Keine Virtualisierung. VMs bieten keinen Zugriff auf die Register, die der CoreFreq-Treiber verwendet.
CoreFreq installieren
Installieren Sie das Kernelmodul mit insmod
# sudo insmod corefreqk.ko
Listet das CoreFreq-Modul mit lsmod
# lsmod | grep corefreq corefreqk 49152 0
auf. Die Ausgabe des Befehls dmesg zeigt, dass CoreFreq vom Prozessor erkannt wurde.
# sudo dmesg | grep CoreFreq CoreFreq: Processor Architecture CPU
Starten Sie den CoreFreq-Daemon
# sudo ./corefreqd -i &
Starten Sie nun den corefreq-Client als Benutzer.
# ./corefreq-cli
7) Htop
Htop ist ein Prozess-Viewer und eine Textmodus-Anwendung für die Systemüberwachung in Echtzeit wie oben. Es zeigt eine vollständige an Liste der Prozesse, die ausgeführt werden und einfach zu verwenden sind. Sie basiert auf ncurses zum Anzeigen der Prozesse in einer GUI-ähnlichen Umgebung, die im Terminal ausgeführt wird. Htop zeigt die Auslastung pro CPU zusammen mit der Speicher- und Auslagerungsauslastung mit einem signifikanten gedruckten Textdiagramm an oben. Htop ist sehr bequem zu bedienen und leicht zu verstehen. Sobald Sie mit der Verwendung von HTOP beginnen, y Möglicherweise kehren Sie nicht zu TOP zurück.
Installieren Sie htop mit dem folgenden Befehl im Terminal.
# sudo apt-get install htop
Führen Sie htop mit dem folgenden Befehl aus.
# htop
8) Nmon
nmon (Nigels Performance Monitor für Linux & AIX) wurde von IBM-Mitarbeiter Nigel Griffiths entwickelt. Dieses Tool wird verwendet, um Systemressourcen wie CPU, Speicher, Netzwerk, Festplatten, Dateisysteme, NFS und Top-Prozesse im Terminal zu überwachen. NMON unterstützt verschiedene Architekturen wie POWER, x86, x86_64, Mainframe und ARM (Raspberry Pi). Mit diesem Tool kann der Systemadministrator die Leistungsinformationen optimieren und vergleichen, um die CPU- / Systemleistung bei Problemen zu beheben. Für die Echtzeitüberwachung wird die Curses-Bibliothek verwendet, um die CPU-Belastung zu verringern. Alle zwei Sekunden werden Statistiken auf dem Bildschirm angezeigt und aktualisiert. nmon verbraucht im Vergleich zu anderen Tools weniger CPU-Speicher, da es eine Curses-Bibliothek verwendet.
Installation
# sudo apt-get install nmon (Ubuntu) # sudo yum install nmon (CentOS)
CentOS-Benutzer müssen installieren / aktivieren EPEL-Repository, um nmon zu installieren.
Geben Sie nmon in das Terminal ein und drücken Sie die Eingabetaste. Nmon zeigt einen Begrüßungsbildschirm mit allen Optionen zur weiteren Verwendung an. Wenn Sie die CPU-Auslastung anzeigen möchten, drücken Sie c und drücken Sie erneut „c“, um die Statistik der CPU-Auslastungs-Widgets auszublenden.
9) Glances
Glances ist ein plattformübergreifendes fluchbasiertes Überwachungstool, das in Python geschrieben wurde und die psutil-Bibliothek zum Abrufen von Daten aus dem System verwendet. Blickmonitor CPU, Lastdurchschnitt, Speicher, Netzwerkschnittstellen, Festplatten-E / A, Prozesse und Auslastung des Dateisystems.
Installieren Sie Blicke mit dem folgenden Befehl in Ihrem System.
In Ubuntu :
# sudo apt-get install glances
In Centos:
# sudo yum install glances
Sie können Glances in 3 Modi ausführen:
1. Standalone
Wenn Sie Ihren lokalen Computer (Standalone) überwachen möchten, führen Sie einfach
# glances
2 aus. Client / Server
Wenn Sie einen Computer remote überwachen möchten, führen Sie die folgenden Schritte auf dem Server aus.
# glances -s
und dann vom Client aus Führen Sie den folgenden Befehl aus.
# glances -c @server
wobei @server die IP-Adresse oder der Hostname des Servers ist.
3. Webserver
Führen Sie die Blicke im Webservermodus aus, indem Sie den folgenden Befehl im Terminal ausführen.
# glances -w Glances web server started on http://0.0.0.0:61208/
Zum Ändern der Aktualisierungsrate des Seite, fügen Sie einfach den Punkt in Sekunden am Ende der URL hinzu. Um die Seite beispielsweise alle 30 Sekunden zu aktualisieren, hängen Sie 10 an die URL des Blick-Servers vom Browser an.
http://@server:61208/30
10) Cpustat
Cpustat ist wie eine schicke Art von Top, die verschiedene Dinge tut. Die meisten Leistungstools verwenden die durchschnittliche CPU-Auslastung über einige Sekunden oder sogar eine Minute. Dies führt zu einer Fantasie von Überkapazitäten aufgrund eines plötzlichen Anstiegs des Ressourcenverbrauchs, der mit weniger ausgelasteten Perioden einhergeht. Andererseits nimmt cpustat Proben mit höherer Frequenz von jedem Prozess und fasst diese Proben mit einer niedrigeren Frequenz zusammen. Beispielsweise kann ein Prozess alle 200 ms gemessen und die Stichproben alle 5 Sekunden zusammengefasst werden, einschließlich Min / Average / Max-Werten für einige Metriken.
Cpustat installieren
Cpustat wird geschrieben in Go-Sprache. Daher benötigen Sie GO in Ihrem System. Wenn es nicht vorhanden ist, installieren Sie es mit den folgenden Befehlen im Terminal.
In Ubuntu
# sudo add-apt-repository ppa:longsleep/golang-backports # sudo apt-get update # sudo apt-get install golang-go
In CentOS
# yum install golang
Sobald Golang in Ihrem System installiert ist, erstellen Sie ein Verzeichnis für Cpustat und stellen Sie dieses Verzeichnis dem GOPATH zur Verfügung.
# mkdir cpustat # export GOPATH=$HOME/cpustat
Installieren Sie Cpustat und überprüfen Sie, ob die Verzeichnisse in den Ordner cpustat kopiert wurden.
# go get github.com/uber-common/cpustat # cd cpustat && ls
Fügen Sie der Umgebungsvariablen PATH den Ordner bin hinzu. Sie können auch die folgende Zeile zu ~ / .bashrc oder / etc / profile hinzufügen, je nachdem, was Sie verwenden.
# export PATH=$PATH:/root/cpustat/bin
Es gibt zwei Möglichkeiten, dies anzuzeigen Daten. Entweder eine reine Textliste des Zusammenfassungsintervalls oder ein farbenfrohes Bildlauf-Dashboard für jedes Beispiel. Führen Sie den folgenden Befehl im Terminal aus, um Daten im ausgefallenen Terminalmodus anzuzeigen.
# cpustat -t
Verwenden Sie den folgenden Befehl, um im Reintextmodus ausgeführt zu werden. Im Textmodus stammen nur wenige systemweite Zusammenfassungsmetriken aus / proc / stat.
# cpustat
Mit dem folgenden Befehl werden alle 500 ms und alle 500 eine Stichprobe aller Prozesse erstellt Fassen Sie diese Daten nach 10 Beispielen zusammen, dh alle 5 Sekunden.
# cpustat -s 500 -s 10 -n 20
Verwenden Sie den folgenden Befehl, um Prozesse zu messen, die entweder dem Benutzer root oder dem Benutzer ubuntu gehören. Die Gesamtsystemstatistiken werden weiterhin gemessen.
# cpustat -u root, ubuntu
Messen Sie nur Prozesse von „Apache“ oder „MySQL“. Die Option -p von cpustat verwendet eine Liste der von pgrep zurückgegebenen Prozess-IDs. pgrep wird verwendet, um die Prozess-IDs abzurufen (Option -d).
# cpustat -p $(pgrep -d, apache2\|mysqld)
Verwenden Sie den folgenden Befehl, um ein Speicherprofil in eine Datei zu schreiben.
# cpustat -memprofile test.txt
11) perf
Perf kann unter tools / perf CPU-Leistungsindikatoren, Tracepoints, kprobes und uprobes messen, die im Linux-Kernel enthalten sind. perf begann als Tool zur Verwendung des Subsystems für Leistungsindikatoren unter Linux und wurde durch verschiedene Verbesserungen erweitert, um Ablaufverfolgungsfunktionen hinzuzufügen. Die Perf-Tools sind seit der Version 2.6 in den Linux-Kernel integriert und basieren auf dem Perf-Events-Subsystem. Der Perf-Profiler verwendet Hardware-Zähler, um die Anwendung zu profilieren. Das Ergebnis dieses Profilers ist explizit und schnell. Das Dienstprogramm perf finden Sie im Linux-Tools-Paket.
Measure entire system for 10 seconds using perf.
# perf stat -a -- sleep 10
Wenn Sie daran interessiert sind, die CPU-Leistung für einen bestimmten“ Befehl „wie cp zu ermitteln. Mit dem folgenden Befehl perf wird cp profiliert, während das gesamte Verzeichnis Documents an einen neuen Speicherort (Docs) kopiert wird.
# perf stat cp -r Documents/ Docs
Wenn Sie CPU-Zählerstatistiken für suchen möchten Verwenden Sie für eine angegebene PID den folgenden Befehl, bis STRG + C gedrückt wird.
# perf stat -p 2087
Ermitteln Sie die systemweiten Grundstatistiken für 10 Sekunden mit der folgenden Funktion Befehl. Sie können auch eine der Optionen unter der Option -e weglassen, um genauer zu sein.
# perf stat -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10
Sammeln Sie Beispielanweisungen auf der CPU für 5 Sekunden und dann Verwenden Sie den Perf-Bericht, um den Bericht anzuzeigen.
# perf record -e cycles:u -a -- sleep 5 # perf report
Sammeln Sie 5 Sekunden lang Beispiel-CPU-Stack-Traces, sobald alle 10.000 Level 1-Datencaches fehlen, und verwenden Sie dann den Perf-Bericht
# perf record -e L1-dcache-load-misses -c 10000 -ag -- sleep 5 # perf report
12) tiptop
Tiptop liest Hardware-Leistungsindikatoren und zeigt Statistiken zum Ausführen von Linux-Prozessen wie IPC an oder Cache-Fehler. Es bietet eine dynamische Echtzeitansicht der im System ausgeführten Aufgaben. Tiptop ist top sehr ähnlich, aber die angezeigten Informationen stammen von Hardware-Zählern.
Es gibt zwei Betriebsmodi: Live-Modus und Batch-Modus. In beiden Modi wird das System regelmäßig nach den Werten der Hardwarezähler abgefragt, und für jede Aufgabe werden verschiedene Verhältnisse gedruckt.
13) ps-Befehl
Wir können den ps-Befehl verwenden, um zu suchen CPU-Nutzung für jeden Prozess oder Benutzer. Einige Beispiele zum Verständnis
Anzeigen der höchsten CPU & Speichernutzung durch Prozesse, die von root ausgeführt werden.
Führen Sie den folgenden Befehl aus, um die CPU-Auslastung für den jeweiligen Befehl anzuzeigen:
Zum Anzeigen von Prozessen für alle Benutzer, die nicht im Vollformat mit einer Sortierung an ein Terminal angehängt sind
14) Befehl dstat
Der Befehl dstat ist ein vielseitiges Tool zum Generieren von Systemressourcenstatistiken und zeigt auch CPU-Statistiken an. Sie müssen es installieren, um es verwenden zu können.
Auf Centos
# yum install -y dstat
Unter Ubuntu
# apt-get install dstat
Zum Überwachen von Programmen, die die meiste CPU verbrauchen und am meisten Speicher verbrauchen.
# dstat -c --top-cpu -dn --top-mem
Fazit
In diesem Lernprogramm haben wir einige Tools zur Überwachung der CPU-Leistung sowie deren Verwendung untersucht. Lesen Sie unbedingt die jeweiligen Manpages, da hier auch die Verwendungszwecke detailliert dokumentiert werden. Denken Sie daran, dass die Verwendung dieser Tools auch einen CPU-Slice erfordert. Zum Beispiel nimmt top 3% -4% der CPU ein, während Blicke 15% bis 20% der CPU beanspruchen. Wenn Sie eines dieser Elemente verwenden, müssen Sie auch diesen Aspekt berücksichtigen. Kurz gesagt, Sie können feststellen, welcher Prozess mehr CPU-Zeit benötigt, ob genügend freier Speicher vorhanden ist und ob Prozesse blockiert sind, während auf E / A gewartet wird. Festplatten- oder Netzwerkzugriff zum vollständigen Lesen / Schreiben und vieles mehr mithilfe einer Kombination aus wenigen.
Lesen Sie auch:
- Überwachen der Linux-Leistung mit dem Befehl Sar
- Installieren Sie htop 2.0.2 und verwenden Sie die Befehlszeile unter Linux