PowerFlex: concetti e risoluzione dei problemi della CPU
Summary: I concetti e la risoluzione dei problemi di base della CPU potrebbero essere non noti o poco chiari ad alcuni. Questo articolo della Knowledge Base fornisce informazioni correlate alla CPU e sulla relativa metodologia di risoluzione dei problemi. ...
Instructions
Concetti
-
CPU (Central Processing Unit): la CPU è un componente hardware che esegue le istruzioni di un programma del computer.
Esegue le operazioni base aritmetiche, logiche e di input/output di un sistema informatico.
È in genere indicata come processore o socket. -
Core della CPU: il core della CPU è il componente di elaborazione effettivo della CPU.
Gestisce tutte le sequenze di comandi ricevute da un thread.
È indicata anche come pCPU (VMware). -
Thread della CPU: un thread della CPU è una versione virtuale di un core della CPU.
Un thread è semplicemente una sequenza ordinata di istruzioni. -
Core logici: ogni thread della CPU si confronta direttamente con un core logico. I core logici misurano il numero di operazioni che un core fisico può eseguire contemporaneamente.
Con la funzionalità Hyper-Threading, un core fisico può eseguire due operazioni e quindi avere due core logici. -
Hyper-Threading: processo in cui una CPU suddivide ciascuno dei suoi core fisici in core virtuali, noti come thread.
È possibile abilitarlo/disabilitarlo in un sistema operativo (OS) e nel BIOS che lo supporta. -
vCPU (Virtual Central Processing Unit): ogni vCPU viene considerata come un singolo core fisico della CPU dal sistema operativo della macchina virtuale (VM).
Rappresenta una porzione o una condivisione di un core fisico assegnato a una VM.
A seconda dell'hypervisor, ogni core fisico supporta 5-10 vCPU per VM.
Diagramma CPU > Core > vCPU
Differenze tra core fisico e core logicolscpu : output del comando
lscpu | egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:' | tac
Esempio di output:
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.
Indice totale dei core logici = socket CPU × core fisici per socket × thread per core fisico
Output del file /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&/"
Output di esempio:
Tutti i valori di output sono basati su zero.
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.
Numero totale di core logici = siblings × numero totale di ID fisici
Documentazione e registri di PowerFlex
Per trovare informazioni relative alla CPU sul server PowerFlex, è possibile utilizzare i seguenti metodi:
SOLO sul sistema attivolscpu
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
Esempio di output:
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
Sul sistema attivo E 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&/"
Per getInfoDump è necessario modificare il percorso del file cpuinfo, che si trova in ...\getInfoDump\server\proc_cpuinfo.txt.
Il file /proc/cpuinfo è più completo di lscpu - Per ulteriori informazioni utilizzare il seguente LINK.
Esempio di output:
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
Per i requisiti di sistema di PowerFlex e per i consigli, consultare la documentazione ufficiale sul sito web del supporto Dell.
Strumenti e suggerimenti per la risoluzione dei problemi
Linuxtop
Questo strumento fornisce una lettura degli utenti, delle attività, del carico della CPU e dell'utilizzo della memoria.
Per uscire dalla funzione top, premere la lettera "q" sulla tastiera.
Alcuni opzioni di comando standard:-i
Idle-processes
Nasconde tutti i processi inattivi, semplificando l'ordinamento dell'elenco.
-n
Number-of-iterations
Specifica il numero massimo di iterazioni, o frame, che top deve produrre prima della fine.
-b
Batch-mode
Avvia top in modalità Batch, operazione che potrebbe essere utile per inviare l'output di top ad altri programmi o a un file.
-n" o fino a quando non viene interrotto.
Alcuni altri comandi utili mentre top è in esecuzione:M : ordina l'elenco delle attività in base all'utilizzo della memoria.P : ordina l'elenco delle attività in base all'utilizzo del processore.N - ordina l'elenco delle attività in base all'ID del processo.T - ordina l'elenco delle attività in base al tempo di esecuzione.
mpstat
Questo strumento fa parte di un pacchetto software denominato sysstat, che visualizza l'attività della CPU. Il sistema visualizza l'utilizzo per ogni processore (o core di processore).
%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
Comando per l'utilizzo medio. Il sistema visualizza l'utilizzo medio della CPU dall'ultimo avvio.
sar
Questo strumento gestisce le risorse di sistema.
Opzione di comando comune:-u
Monitora solo le prestazioni della CPU.
%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.
Il comando seguente visualizza i primi 10 utenti della CPU sul sistema Linux:
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
OPPURE
ps -eo pcpu,pid,user,args | sort -r -k1 | less
VMware
Negli ambienti di virtualizzazione, in particolare in VMware ESXi, l'uso delle risorse di sistema è suddiviso in livelli e talvolta troppo completo per essere analizzato rapidamente.
Consultare questo articolo della Knowledge Base di VMware per le varie versioni di codice per la risoluzione dei problemi di prestazioni di host/macchine virtuali ESXi: Troubleshooting VMware Resources.
Per la risoluzione dei problemi di prestazioni della CPU e di altre risorse, è possibile utilizzare sia l'interfaccia utente che la CLI.
Interfaccia utente:
vCenter Server raccoglie i dati statistici da tutti gli host e le VM ESXi connessi e aggrega, calcola e archivia i dati a intervalli configurati.
Per accedere ai dati, avviare vSphere Client, selezionare la macchina virtuale o l'host e accedere a Monitor > Performance > Overview per ottenere un riepilogo degli indicatori principali, come CPU, memoria, disco e rete.
Accedere ad Advanced e utilizzare il menu a discesa View nell'angolo in alto a destra per visualizzare ulteriori dettagli su ciascun indicatore.
CLI:esxtop
Questo strumento fornisce una lettura degli utenti, delle attività, del carico della CPU e dell'utilizzo della memoria.
Accedere alla sessione SSH dell'host (sono richiesti privilegi root) e digitare esxtop. All'avvio di ESXTOP, viene visualizzata la vista CPU per impostazione predefinita.
Per informazioni più complete sulle varie metriche e schermate di esxtop, consultare l'articolo seguente: ESXTOP Explained.
Si noti che per le prestazioni specifiche di un sistema operativo o di un'applicazione su una VM, segue le istruzioni pertinenti fornite dal relativo fornitore, per sistema operativo/applicazione.
Alcuni opzioni di comando standard:-l
In ambienti di grandi dimensioni, esxtop può determinare un elevato utilizzo della CPU a causa della quantità di dati che devono essere raccolti e dei calcoli che devono essere eseguiti.
Blocca entità specifiche e impedisce a esxtop di raccogliere informazioni dettagliate per limitare la quantità di potenza della CPU necessaria.
-l" in quanto le entità sono bloccate.
-u
Questa opzione elimina le statistiche fisiche relative alla CPU del server, consentendo il risparmio di una notevole quantità di dati archiviati.
-n
Number-of-iterations
Specifica il numero massimo di iterazioni, o frame, che esxtop deve produrre prima della fine.
-b
Batch-mode
Avvia top in modalità Batch, operazione che potrebbe essere utile per inviare l'output di top ad altri programmi o a un file.
-b" in quanto le entità sono bloccate. Inoltre, in questa modalità, esxtop non accetta input e viene eseguito fino al limite di iterazioni impostato con l'opzione "-n" o fino a quando non viene interrotto.
Windows
Negli ambienti Windows, l'utilizzo elevato di CPU e della memoria non è sempre un problema da risolvere e varia a seconda dei casi d'uso.
È possibile utilizzare Gestione attività e vedere quale applicazione/attività/servizio causa un elevato utilizzo di risorse.
I server Windows possono essere utilizzati per vari scopi con l'esecuzione di più servizi
Per la risoluzione dei problemi di prestazioni di vari servizi, consultare questo articolo della Knowledge Base Microsoft: Risoluzione dei problemi di Windows Server.
PowerShell
Un framework di gestione della configurazione e dell'automazione delle attività multipiattaforma, costituito da una shell a riga di comando e un linguaggio di scripting.
Per informazioni più complete sulla risoluzione dei problemi della CPU tramite PowerShell, consultare il seguente articolo: PowerShell CPU Troubleshooting.