alta IO-APIC-fasteoi interrupção uso eth0

1

Acredito que isso se deva a um rsync cronjob que é executado a cada 15 minutos. Esta é uma caixa do RHEL 6 em execução no ESXi. /proc/interrupts mostra:

18: 3386804969   IO-APIC-fasteoi   eth0

e o carregamento do sistema às vezes aumenta para mais de 30.00. Este é um sistema central único.

O comando sar mostra que a maioria da carga nesse momento é "% system". Eu gostaria de determinar porque a carga está indo tão alto, e se é de fato o devido a rsync . Solução de ideias? Isso pode ser devido a rsync executando somas de verificação? O rsync aproveita o descarregamento do TCP para realizar somas de verificação?

    
por Gregg Leventhal 21.12.2013 / 19:05

1 resposta

1

Parece um problema bastante fácil de resolver. Basta executar top ou htop e ver qual processo está consumindo recursos durante um desses limites entre as janelas de 15 minutos em que você está vendo o problema aparecer.

Você também pode usar uma ferramenta como nethogs para identificar qual processo está consumindo a maioria dos recursos de rede.

Exemplo

Para monitorar minha placa de rede sem fio.

$ sudo nethogs wlp3s0

screenshot - clique para ampliar

Outrasideiasparadepurarisso

  1. Eutambémdariaumaolhadanorsyncemummodointerativovs.depurandocomoumcronjob.Amesmadegradaçãodedesempenhodeveaparecer,sejaelainterativaoucronjada.
  2. DêumaolhadanodiscoI/O.Paraisso,vocêpodeusaraferramentaiotop.

    $sudoiotop

Identificandoogargalo

Emgeral,comovocêestávendoumacargaaltaemsuaCPU,issosignificaquevocêtemmuitosprocessosqueestão"prontos para serem executados" e estão se acumulando na fila de espera do Kernel, esperando por uma fatia do Tempo da CPU.

Isso me levaria a concordar com você que a operação que está realizando os cálculos de soma de verificação está causando isso.

Se o problema for mais de um problema de rede, você poderá controlar rsync usando essa opção:

    --bwlimit=KBPS          limit I/O bandwidth; KBytes per second

verifica o problema?

Você também desejará confirmar que seu rsync cronjob está realmente usando a funcionalidade de soma de verificação do rsync. Isso é normalmente desativado por padrão, de acordo com o meu conhecimento - e você precisa ativá-lo explicitamente, o que pode até não ser a causa raiz do problema.

excerto da página de manual do rsync

-c, --checksum
   This  changes  the  way rsync checks if the files have been changed 
   and are in need of a transfer.  Without this option, rsync uses a 
   "quick check" that (by default) checks if each file’s size and time 
   of last modification match between the  sender  and receiver.   This  
   option  changes  this  to compare a 128-bit checksum for each file 
   that has a matching size.  Generating the checksums means that both 
   sides will expend a lot of disk I/O reading all the data in the files 
   in the transfer (and  this  is prior to any reading that will be done 
   to transfer changed files), so this can slow things down
   significantly.

   The  sending  side generates its checksums while it is doing the 
   file-system scan that builds the list of the available files. The 
   receiver generates its checksums when it is scanning for changed            
   files, and will checksum any file that has the same  size as the 
   corresponding sender’s file:  files with either a changed size or a 
   changed checksum are selected for transfer.

   Note  that  rsync  always  verifies that each transferred file was 
   correctly reconstructed on the receiving side by checking a whole-
   file checksum that is generated as the file is transferred, but that 
   automatic after-the-transfer verification has nothing to do with this 
   option’s before-the-transfer "Does this file need to be updated?" 
   check.

   For  protocol  30  and beyond (first supported in 3.0.0), the 
   checksum used is MD5.  For older protocols, the checksum used is MD4.

Referências

por 21.12.2013 / 22:01