cpu utilização acima de 100% no sistema linux

2

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

    
por Khaled 04.01.2012 / 08:18

8 respostas

11

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%.

    
por 04.01.2012 / 08:21
3

Tente usar o comando top

man top para mais informações

    
por 04.01.2012 / 08:24
3

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".

    
por 04.01.2012 / 08:48
2

Outra opção é usar o comando ps e classificar o uso da CPU:

ps aux --sort=+cpu
    
por 04.01.2012 / 12:34
1

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.

    
por 04.01.2012 / 09:03
0

Não tem certeza do que você usa para medir a utilização, mas pode usar:

cat /proc/loadavg 
    
por 04.01.2012 / 08:22
0

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.

    
por 05.01.2012 / 02:21
0

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.

    
por 11.01.2012 / 17:55