PowerFlex: CPU-Konzepte und Troubleshooting
Summary: CPU-Konzepte und grundlegendes Troubleshooting können unbekannt oder verwirrend sein. Dieser Wissensdatenbank-Artikel enthält CPU-bezogene Informationen und Troubleshooting-Methoden.
Instructions
Konzepte erklärt
-
Hauptprozessor (Central Processing Unit, CPU): Die CPU ist eine Hardware, die die Anweisungen eines Computerprogramms ausführt.
Sie führt die grundlegenden arithmetischen, logischen und Eingabe-/Ausgabeoperationen eines Computersystems aus.
In der Regel der Prozessor oder Sockel -
CPU-Core: Ein CPU-Core ist die eigentliche Verarbeitungskomponente der CPU.
Er verarbeitet alle Befehlssequenzen, die von einem Thread empfangen werden.
Wird auch als pCPU (VMware) bezeichnet. -
CPU-Thread: Ein CPU-Thread ist eine virtuelle Version eines CPU-Cores.
Ein Thread ist lediglich eine geordnete Abfolge von Anweisungen. -
Logische Cores: Jeder CPU-Thread wird direkt mit einem logischen Core verglichen. Logische Cores messen die Anzahl der Vorgänge, die ein physischer Core gleichzeitig ausführen kann.
Mit der Hyper-Threading-Funktion kann ein physischer Core zwei Vorgänge ausführen und verfügt daher über zwei logische Cores. -
Hyper-Threading: Hierbei handelt es sich um einen Prozess, bei dem eine CPU jeden ihrer physischen Cores in virtuelle Cores aufteilt, die als Threads bezeichnet werden.
Kann auf einem Betriebssystem (BS) und BIOS, die dies unterstützen, aktiviert/deaktiviert werden. -
Virtual Central Processing Unit (vCPU): Jede vCPU wird vom Betriebssystem der virtuellen Maschine (VM) als einzelner physischer CPU-Core betrachtet.
Stellt einen Teil oder eine Freigabe eines physischen Cores dar, der einer VM
zugewiesen ist. Je nach Hypervisor unterstützt jeder physische Kern 5 bis 10 vCPUs pro VM.
CPU > Core > vCPU-Diagramm
Physischer Core im Vergleich zu Logik-Corelscpu Befehlsausgabe
lscpu | egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:' | tac
Beispiel Ausgabe:
Socket(s): 2 ← The motherboard has 2 CPU processors/sockets. Core(s) per socket: 8 ← Each CPU socket has 8 physical cores. Hence, it has 16 physical cores in total. Thread(s) per core: 2 ← Each physical CPU core can run 2 threads = Hyper-Threading enabled. CPU(s): 32 ← The computer has 2 × 8 × 2 = 32 logical cores in total.
Der Gesamtindex logischer Cores = CPU-Sockel × physischen Cores pro Sockel × Threads pro physischem Core.
Ausgabe der Datei /proc/cpuinfo
echo " "; echo "Model Name: "$(cat /proc/cpuinfo|egrep 'model name'|head -1|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}'); cat /proc/cpuinfo | egrep 'processor|physical id|siblings|core id|cpu cores' | sed "s/^processor/\n&/"
Beispielausgabe:
Alle Ausgabewerte sind nullbasiert.
processor : 0 ← The index number of threads. physical id : 0 ← CPU socket index #0 (the only one if no other physical id's in the full output). siblings : 8 ← The amount of logical cores in the socket. core id : 0 ← CPU core index #0. cpu cores : 4 ← CPU socket index #0 has 4 physical cores.
Die Gesamtzahl der logischen Kerne = gleichgeordnete Cores × Gesamtzahl der physischen IDs
Dokumentation und Protokolle zu PowerFlex
Sie können die folgenden Methoden verwenden, um CPU-bezogene Informationen über den PowerFlex-Server zu finden:
NUR auf Live-Systemenlscpu
echo " ";echo "Model Name: "$(lscpu|egrep 'Model name'|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}');echo " ";lscpu|egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:'|tac
Beispiel Ausgabe:
Model name: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz Socket(s): 1 Core(s) per socket: 4 Thread(s) per core: 2 CPU(s): 8
Auf dem Live-System UND getInfoDump
/proc/cpuinfo
echo " ";echo "Model Name: "$(cat /proc/cpuinfo|egrep 'model name'|head -1|awk '{for(i=4;i<=20;i++)printf "%s ",$i;print ""}');cat /proc/cpuinfo|egrep 'processor|physical id|siblings|core id|cpu cores'|sed "s/^processor/\n&/"
Für getInfoDump müssen Sie den Speicherort der Datei cpuinfo ändern, sie befindet sich unter ...\getInfoDump\server\proc_cpuinfo.txt.
Die Datei /proc/cpuinfo ist umfassender als lscpu - Weitere Informationen finden Sie unter folgendem LINK.
Beispiel Ausgabe:
Model Name: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz processor : 0 physical id : 0 siblings : 8 core id : 0 cpu cores : 4 processor : 1 physical id : 0 siblings : 8 core id : 0 cpu cores : 4 processor : 2 physical id : 0 siblings : 8 core id : 1 cpu cores : 4 processor : 3 physical id : 0 siblings : 8 core id : 1 cpu cores : 4 processor : 4 physical id : 0 siblings : 8 core id : 2 cpu cores : 4 processor : 5 physical id : 0 siblings : 8 core id : 2 cpu cores : 4 processor : 6 physical id : 0 siblings : 8 core id : 3 cpu cores : 4 processor : 7 physical id : 0 siblings : 8 core id : 3 cpu cores : 4
Informationen zu den Systemanforderungen und Empfehlungen für PowerFlex finden Sie in der offiziellen Dokumentation auf der Dell Supportwebsite.
Tools und Tipps zur Fehlerbehebung
Linuxtop
Dieses Tool ermöglicht das Auslesen von Verbrauchern, Aufgaben, CPU-Auslastung und Speicherauslastung.
Um die Funktion „top“ zu beenden, drücken Sie den Buchstaben „Q“ auf Ihrer Tastatur.
Einige standardmäßige Befehls-Switches:-i
Idle-processes
Dadurch werden alle Prozesse im Standby ausgeblendet, was das Sortieren der Liste erleichtert.
-n
Number-of-iterations
Gibt die maximale Anzahl der Iterationen oder Frames an, die top vor dem Ende erzeugen soll.
-b
Batch-mode
Startet top im Batch-Modus, was nützlich sein kann, um die Ausgabe von oben an andere Programme oder eine Datei zu senden.
-n“ festgelegt oder der Vorgang abgebrochen wird.
Einige andere nützliche Befehle, während top ausgeführt wird, sind:M - sort task list by memory usageP - sort task list by processor usageN - sort task list by process IDT - sort task list by run time
mpstat
Dieses Tool ist Teil eines Softwarepakets namens sysstat, mit dem die CPU-Aktivität angezeigt wird. Das System zeigt die Nutzung für jeden Prozessor (oder Prozessor-Core) an.
%usr – % CPU usage at the user level. %nice – % CPU usage for user processes labeled “nice”. %sys – % CPU usage at the system (Linux kernel) level. %iowait – % CPU usage idling waiting on a disk read/write. %irq – % CPU usage handling hardware interrupts. %soft – % CPU usage handing software interrupts. %steal – % CPU usage being forced to wait for a hypervisor handling other virtual processors. %guest – % CPU usage spent running a virtual processor. %idle – % CPU usage on idle time (no processes, and not waiting on a disk read/write).
iostat
Befehl für „Average Usage“. Das System zeigt die durchschnittliche CPU-Auslastung seit dem letzten Start an.
sar
Dieses Tool verwaltet Systemressourcen.
Häufige verwendeter Befehls-Switch:-u
Dies verfolgt nur die CPU-Leistung.
%user: Percentage of CPU utilization that occurred while executing at the user level (application). %nice: Percentage of CPU utilization that occurred while executing at the user level with nice priority. %system: Percentage of CPU utilization that occurred while executing at the system level (kernel). %iowait: Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request. %idle: Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request.
Mit dem folgenden Befehl werden die 10 wichtigsten CPU-Verbraucher auf dem Linux-System angezeigt:
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
ODER
ps -eo pcpu,pid,user,args | sort -r -k1 | less
VMware
In Virtualisierungsumgebungen, insbesondere dem häufig verwendeten VMware ESXi, ist die Nutzung von Systemressourcen mehrschichtig und manchmal zu umfangreich, um sie schnell zu analysieren.
Befolgen Sie diesen VMware-Wissensdatenbank-Artikel für verschiedene Codeversionen unter Troubleshooting von Performanceproblemen mit ESXi-Hosts/VMs – Troubleshooting von VMware-Ressourcen.
Sowohl die Benutzeroberfläche als auch die CLI können für das Troubleshooting der Leistung von CPU und anderen Ressourcen verwendet werden.
BENUTZEROBERFLÄCHE:
vCenter Server erfasst statistische Daten von allen verbundenen ESXi-Hosts und VMs und aggregiert, berechnet und archiviert die Daten in konfigurierten Intervallen.
Um auf die Daten zuzugreifen, starten Sie vSphere Client, wählen Sie Ihre VM oder Ihren Host aus und rufen Sie „Monitor > Performance > Overview“ auf, um eine Zusammenfassung der wichtigsten Indikatoren wie CPU, Arbeitsspeicher, Festplatte und Netzwerk zu erhalten.
Rufen Sie „Advanced“ auf und verwenden Sie das Dropdown-Menü „View“ in der oberen rechten Ecke, um weitere Details zu jedem Indikator anzuzeigen.
CLI:esxtop
Dieses Tool ermöglicht das Auslesen von Verbrauchern, Aufgaben, CPU-Auslastung und Speicherauslastung.
Melden Sie sich bei der SSH-Sitzung des Hosts an (Root-Berechtigungen erforderlich) und geben Sie Folgendes ein: esxtop. Wenn Sie ESXTOP starten, wird standardmäßig die CPU-Ansicht angezeigt.
Lesen Sie den folgenden Artikel, um ein umfassenderes Verständnis der verschiedenen ESXTOP-Messwerte und -Bildschirme zu erhalten: ESXTOP erklärt.
Beachten Sie, dass für die Leistung eines bestimmten Betriebssystems/einer bestimmten Anwendung auf einer VM die entsprechenden Weisungen des entsprechenden Anbieters pro Betriebssystem/Anwendung befolgt werden.
Einige standardmäßige Befehls-Switches:-l
In großen Umgebungen kann ESXTOP aufgrund der Menge der zu erfassenden Daten und der durchzuführenden Berechnungen eine hohe CPU-Auslastung verursachen.
Sperrt bestimmte Entitäten und verhindert, dass ESXTOP detaillierte Informationen erfasst, um die Menge der erforderlichen CPU-Leistung zu begrenzen.
-l“ verwendet wird, da die Entitäten gesperrt sind!
-u
Diese Option unterdrückt die physischen CPU-Statistiken des Servers, wodurch eine erhebliche Menge an gespeicherten Daten eingespart wird.
-n
Number-of-iterations
Gibt die maximale Anzahl der Iterationen oder Frames an, die ESXTOP vor dem Ende erzeugen soll.
-b
Batch-mode
Startet top im Batch-Modus, was nützlich sein kann, um die Ausgabe von oben an andere Programme oder eine Datei zu senden.
-b“ verwendet wird, da die Entitäten gesperrt sind! In diesem Modus akzeptiert ESXTOP außerdem keine Eingaben und wird ausgeführt, bis das Iterationslimit mit der Switch-Option „-n“ festgelegt oder der Vorgang abgebrochen wird.
Windows
In Windows-Umgebungen ist eine hohe CPU- und Arbeitsspeicherauslastung nicht immer ein Problem, das behoben werden muss. Sie variiert je nach Anwendungsfall.
Wir können den Task-Manager verwenden und sehen, welche Anwendung/Aufgabe/Dienst eine hohe Ressourcenauslastung verursacht.
Da Windows-Server für verschiedene Zwecke verwendet werden können, müssen mehrere Dienste ausgeführt werden.
Befolgen Sie diesen Microsoft Wissensdatenbank-Artikel zum Troubleshooting von Leistungsproblemen bei verschiedenen Diensten: Troubleshooting von Windows Server-Komponenten.
PowerShell
Ein plattformübergreifendes Framework für die Automatisierung von Aufgaben und das Konfigurationsmanagement, bestehend aus einer Befehlszeilen-Shell und einer Skriptsprache
Lesen Sie den folgenden Artikel, um ein umfassendere Informationen zum CPU-Troubleshooting mithilfe von PowerShell zu erhalten: PowerShell CPU-Troubleshooting.