O que é o processo “Interrupts” e por que ele ama tanto o meu CPU?

5

Eu tenho o Windows XP SP3 no Intel Core Duo 2GHz. O processo "Interrupts", de acordo com o Process Explorer, leva continuamente de 30 a 40% da CPU. Isso é normal?

    
por Kamarey 23.06.2009 / 11:26

3 respostas

10

Em termos muito gerais, uma interrupção é gerada por um dispositivo IO (como um controlador de disco, uma placa de rede, um controlador USB, etc.) quando ele quer alguma atenção do processador - é basicamente gritar 'Ei, posso ter um pouco? do seu tempo, por favor! '.

O processador tem seus próprios trabalhos para continuar, então, quando recebe uma interrupção, ele precisa parar o que está fazendo e lidar com os requisitos do dispositivo para mover dados ou o que for. Isso não deve ser muito trabalho, mas com placas adaptadoras modernas lidando com muitos dados, elas podem gerar muitas interrupções por segundo para o processador. Tradicionalmente, os computadores tinham apenas um único processador, e muitos sistemas operacionais nunca pensaram em espalhar esse trabalho de manipulação de interrupções para mais do que apenas o primeiro processador - este ainda é o caso agora, uma placa de rede pode inundar o núcleo 0 mesmo dos mais modernos processador de alto desempenho se o sistema operacional não compartilhar essa carga de trabalho.

Existem várias maneiras de contornar isso, uma chamada 'coalescência de interrupções', que é um recurso de uma placa de rede que agrupa um grupo de interrupções e as envia para o processador como uma única - isso adiciona latência de rede, mas pode economizar muita sobrecarga do processador. Outro é chamado de 'receber escalonamento lateral' que, em termos gerais, divide o trabalho de lidar com interrupções com mais do que apenas 'core 0' - diminuindo a ênfase do 'core 0' (que ainda está preso fazendo muitas outras O SO funciona em todos os sistemas operacionais, com exceção dos mais modernos).

Existe outra função interessante que não tem muito a ver com interrupções, mas que pode melhorar o desempenho geral do servidor chamado 'descarregamento de TCP' - isso permite que a placa de rede faça parte do trabalho que o processador normalmente faria. Todas essas três funções precisam ser suportadas pelo adaptador de rede, pelo BIOS e pelo sistema operacional, caso contrário, não funciona - como referência, consulte ESTE documento da Microsoft, explica as coisas com muito mais detalhes.

Espero que isso ajude.

    
por 23.06.2009 / 11:54
0

É perfeitamente normal se você estiver fazendo operações de E / S (leitura / gravação de disco, tráfego de rede, etc.).

    
por 23.06.2009 / 11:28
0

Interrupções altas, como outras palavras, significam que sua CPU está ocupada cuidando de algum hardware que deseja atenção. É completamente normal quando se usa intensamente o disco rígido ou a rede.

Se o seu sistema realmente estiver ocioso (certifique-se de que não há programas em segundo plano, como bittorrent ou defrag tools ou algo em execução), e ainda é alto, então isso provavelmente não é normal.

Para comparação, meu sistema Athlon dual core 3.11GHz, rodando o windows 7, várias janelas do firefox abertas, e alguns outros programas em segundo plano tem Interrupts com menos de 1% de CPU no Process Explorer. Quando copio arquivos pela rede em torno de 10MB / s, ele sobe para 10-15%.

Normalmente, a causa é um driver ruim ou um hardware ruim. Aqui está uma questão de solução de problemas que você pode tentar reduzi-lo:

  • Entre no msconfig e desative todos os programas de inicialização e, em seguida, reinicialize. Se for embora, então é um programa em segundo plano que está usando algo
  • Obtenha a ferramenta de teste do fabricante para o seu disco rígido e execute-a. Um disco rígido com falha causará interrupções muito altas
  • Remova hardware não essencial, como dispositivos USB, unidade de DVD, rede de som e placas gráficas (se também tiver vídeo integrado), um por um e veja se o problema desaparece
  • Verifique se há drivers atualizados para todo o hardware
  • Verifique se há atualizações do BIOS para sua placa-mãe
  • Executar o memtest no sistema

Se você puder reduzi-lo a um hardware específico, tente em outro computador e veja se ele causa o mesmo alto uso de interrupção. Se sim, e as atualizações de driver / firmware não ajudam, então ele precisa ser substituído.

    
por 29.01.2012 / 17:19