PowerFlex: Conceitos e solução de problemas de CPU
Summary: Os conceitos de CPU e a solução básica de problemas podem ser desconhecidos ou confusos para alguns. Este artigo da KB apresenta informações relacionadas à CPU e metodologia de solução de problemas. ...
Instructions
Conceitos explicados
-
Unidade de processamento central (CPU) — a CPU é uma peça de hardware que executa as instruções de um programa de computador.
Ela executa as operações aritméticas básicas, lógicas e de entrada/saída de um sistema de computador.
Normalmente vista como o processador ou soquete -
Núcleo da CPU — um núcleo de CPU é o componente real de processamento da CPU.
Ele lida com todas as sequências de comando recebidas de um thread.
Também visto como pCPU (VMware) -
Thread de CPU — é uma versão virtual de um núcleo de CPU.
Um thread é meramente uma sequência ordenada de instruções. -
Núcleos lógicos — cada thread de CPU é comparado diretamente a um Núcleo lógico. Os Núcleos lógicos medem o número de operações que um núcleo físico pode executar simultaneamente.
Com o recurso Hyper-Threading, um núcleo físico pode executar duas operações e, portanto, ter dois núcleos lógicos. -
Hyper-Threading — é um processo em que uma CPU divide cada um de seus núcleos físicos em núcleos virtuais, que são conhecidos como threads.
Pode ser ativado/desativado em um sistema operacional (SO) e BIOS que o suportam. -
Unidade de processamento central virtual (vCPU) — cada vCPU é vista como um único núcleo físico de CPU pelo sistema operacional da máquina virtual (VM).
Representa uma parte ou compartilhamento de um núcleo físico atribuído a uma VM
Dependendo do hypervisor, cada núcleo físico suportaria de 5 a 10 vCPUs por VM.
Diagrama do Núcleo da > CPU > vCPU
Núcleo físico x núcleo lógicolscpu saída do comando
lscpu | egrep 'Socket\(s\)|Core\(s\) per socket|Thread\(s\) per core|CPU\(s\)\:' | tac
Exemplo de resultado:
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.
O índice total de núcleos lógicos = soquetes de CPU × núcleos físicos por soquete × threads por núcleo físico.
saída do arquivo /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&/"
Exemplo de resultado:
Todos os valores de saída são baseados em 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.
O número total de núcleos lógicos = equivalentes × quantidade total de IDs físicos
Documentação e logs do PowerFlex
Para localizar informações relacionadas à CPU sobre o servidor PowerFlex, você pode usar os seguintes métodos:
SOMENTE no sistema ativolscpu
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
Exemplo de resultado:
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
No sistema ativo E no 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&/"
Para getInfoDump você deve alterar o local do arquivo cpuinfo; ele está localizado em ...\getInfoDump\server\proc_cpuinfo.txt.
O arquivo /proc/cpuinfo é mais abrangente do que lscpu - para obter informações adicionais, use o seguinte link.
Exemplo de resultado:
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
Para obter as recomendações e os requisitos do sistema PowerFlex, consulte a documentação oficial no site do Suporte Dell.
Ferramentas e dicas de solução de problemas
Linuxtop
Essa ferramenta fornece uma visão geral de usuários, tarefas, carga da CPU e uso da memória.
Para sair da função superior, pressione a letra "Q" no teclado.
Algumas opções de comando padrão:-i
Idle-processes
Isso oculta todos os processos ociosos, facilitando a classificação da lista.
-n
Number-of-iterations
Especifica o número máximo de iterações ou quadros, que top deve produzir antes de terminar.
-b
Batch-mode
Inicia top no modo em lote, o que pode ser útil para enviar a saída de top para outros programas ou um arquivo.
-n" ou até ser encerrado.
Alguns outros comandos úteis enquanto top está em execução incluem:M — classificar lista de tarefas por uso de memóriaP — classificar lista de tarefas por uso do processadorN — classificar lista de tarefas por ID de processoT — classificar lista de tarefas por tempo de execução
mpstat
Essa ferramenta faz parte de um pacote de software chamado sysstat, que exibe a Atividade da CPU. O sistema exibe o uso para cada processador (ou núcleo do processador).
%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 para uso médio. O sistema exibe o uso médio da CPU desde a última inicialização.
sar
Essa ferramenta gerencia os recursos do sistema.
Opção de comando comum:-u
Isso rastreia apenas o desempenho da 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.
O seguinte comando exibe os 10 principais usuários de CPU no sistema Linux:
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
OU
ps -eo pcpu,pid,user,args | sort -r -k1 | less
VMware
Em ambientes de virtualização, especialmente o VMware ESXi comumente usado, o uso de recursos do sistema é em camadas e, às vezes, muito abrangente para ser analisado rapidamente.
Siga este artigo da KB da VMware para obter várias versões de código em Solução de problemas de desempenho de VM/host do ESXi — Solução de problemas de recursos VMware.
Tanto a IU quanto a CLI podem ser usadas para solucionar problemas de desempenho da CPU e de outros recursos.
IU:
O vCenter Server coleta dados estatísticos de todos os hosts do ESXi e VMs conectados e agrega, calcula e arquiva os dados em intervalos configurados.
Para acessar os dados, inicie o vSphere Client, selecione sua VM ou host e acesse Monitor > Performance > Overview para obter um resumo dos principais indicadores, como CPU, memória, disco e rede.
Vá para Advanced e use o menu suspenso View no canto superior direito para ver mais detalhes sobre cada indicador.
CLI:esxtop
Essa ferramenta fornece uma visão geral de usuários, tarefas, carga da CPU e uso da memória.
Faça log-in na sessão SSH do host (privilégios root obrigatórios) e digite esxtop. Ao iniciar o ESXTOP, você obtém a visualização da CPU por padrão.
Consulte o artigo a seguir para obter uma compreensão mais abrangente das várias métricas e telas do esxtop — ESXTOP explicado.
Note que, para desempenho de um SO/aplicativo específico em uma VM, siga as instruções relevantes fornecidas pelo respectivo fornecedor, por sistema operacional/aplicativo.
Algumas opções de comando padrão:-l
Em ambientes grandes, o esxtop pode ter alta utilização da CPU devido à quantidade de dados que devem ser coletados e cálculos que devem ser feitos.
Bloqueia entidades específicas e impede que o esxtop colete informações detalhadas para limitar a quantidade de energia da CPU necessária.
-l" é usado, pois as entidades estão bloqueadas!
-u
Essa opção suprime as estatísticas de CPU física do servidor, que economizam uma quantidade significativa de dados que estão sendo armazenados.
-n
Number-of-iterations
Especifica o número máximo de iterações ou quadros, que esxtop deve produzir antes de terminar.
-b
Batch-mode
Inicia top no modo em lote, o que pode ser útil para enviar a saída de top para outros programas ou um arquivo.
-b" é usado, pois as entidades estão bloqueadas! Além disso, nesse modo, esxtop não aceitará entrada e será executado até que o limite de iterações seja definido com a opção de switch "-n" ou até ser encerrado.
Windows
Em ambientes Windows, o alto uso de CPU e memória nem sempre é um problema que deve ser corrigido. Isso varia de acordo com os casos de uso.
Podemos usar o Gerenciador de tarefas e ver qual aplicativo/tarefa/serviço causa alto uso de recursos.
Como os Windows Servers podem ser usados para várias finalidades, executando vários serviços.
Siga este artigo da KB da Microsoft para solucionar problemas de desempenho para vários serviços — Solução de problemas de componentes do Windows Server.
PowerShell
Uma estrutura de gerenciamento de configuração e automação de tarefas entre plataformas, que consiste em um shell de linha de comando e uma linguagem de script
Consulte o artigo a seguir para obter uma compreensão mais abrangente da solução de problemas de CPU usando o PowerShell — Solução de problemas de CPU do PowerShell.