A utilização da CPU é medida em relação a uma única CPU. O máximo é 100% para cada CPU, portanto, um sistema de quatro CPUs teria uma utilização máxima da CPU de 400%.
Em um dos nossos servidores Linux de produção, a utilização da CPU está cruzando 100 %
e, às vezes, é 250%
.
Como posso encontrar qual processo está usando mais utilização da CPU e onde posso encontrar logs de utilização da CPU?
SO: RHEL 5.5
A utilização da CPU é medida em relação a uma única CPU. O máximo é 100% para cada CPU, portanto, um sistema de quatro CPUs teria uma utilização máxima da CPU de 400%.
Tente usar o comando top
man top
para mais informações
O utilitário sar
coleta algumas estatísticas sobre o seu sistema, se estiver ativado. A maneira mais simples de acessá-los é digitar sar
na linha de comando.
Uma opção muito melhor é instalar um sistema de monitoramento como o Cacti, o Munin ou o Zabbix. (Embora o Nagios possa fazer gráficos, esse não é seu ponto strong.) Há muitas perguntas sobre o ServerFault sobre qual sistema de monitoramento é o melhor. Depois de instalar um deles, você terá dificuldade em lembrar como você viveu sem ele.
Geralmente, eles não informam qual processo estava usando toda a CPU a qualquer momento. Para isso, top
ou htop
no momento é a sua melhor aposta. Tenha em mente que 25 processos do Apache usando 10% de CPU cada um é exibido de forma diferente em top
para um único processo MySQL usando 250% da CPU.
A outra métrica chave a ser observada é a "média de carregamento". Esta é uma indicação de quantos processos estão atualmente aguardando para entrar em um processador. Este é um bom indicador de quão lento seu sistema se sentirá ao usar.
Outra nota sobre a utilização da CPU, as máquinas virtuais podem alterar dinamicamente a capacidade da CPU em resposta às necessidades da VM. Eu vi um único processo aparecendo como usando 9999% de CPU no topo de dentro de uma VM. O conselho dado pela VMWare sobre isso é "Não confie métricas medidas a partir da VM".
Outra opção é usar o comando ps
e classificar o uso da CPU:
ps aux --sort=+cpu
Não há registro de utilização do processo, você pode querer instalar algo como atop
para isso. Costumava haver um pacote "contabilidade do sistema" do GNU, mas o IIRC é menos adequado.
Não tem certeza do que você usa para medir a utilização, mas pode usar:
cat /proc/loadavg
Outros mencionaram o topo.
Se você quiser, pode executar top -b -n1 | head
no modo batch no cron e salvar a saída em algum lugar, para acompanhar os principais processos.
Eu tenho respondido uma pergunta semelhante a isso. Você pode querer melhorar esse script para suas próprias necessidades. Basicamente, o comando ps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 5
lhe dará alguma saída significativa. Você pode apenas querer automatizá-lo e registrar a saída para análise posterior.