Por que há muito uso de CPU principalmente na operação de IO?

1

Eu tenho um processo escrevendo arquivos binários no sistema de arquivos ext3.

Eu diria que isso deve ser um processo bastante fácil na CPU, mas vejo 45% de utilização da CPU do sistema. É um servidor de 80 núcleos de 40 núcleos e há uma matriz de discos RAID 1 + 0 16.

Existem 100 segmentos fazendo IO ao mesmo tempo. É normal ter quase metade da CPU do sistema usada? Existe uma maneira de analisar por que ele está usando muito da CPU?

A CPU do usuário está em torno de 10-15%.

O processo é assim: lemos alguns dados de um arquivo, verificamos se os dados estão em db, depois gravamos os dados em arquivos. Db está em máquina diferente, o registro também está em uma máquina diferente. O que acontece é que verificamos se o arquivo já está lá, geralmente não está lá, então criamos um novo arquivo e escrevemos alguns dados nele.

aqui está o que vejo com

iostat -xkt 1

03/07/2014 01:06:28 PM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          16.14    0.00   43.24    0.01    0.00   40.60

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00   166.00    0.00   69.00     0.00   940.00    27.25     0.02    0.23   0.17   1.20
sda               0.00   322.00    1.00  598.00   128.00  3680.00    12.71     0.07    0.12   0.09   5.50
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00  235.00     0.00   940.00     8.00     0.06    0.26   0.05   1.10
dm-4              0.00     0.00    1.00  920.00   128.00  3680.00     8.27     0.10    0.11   0.06   5.40
    
por Roman Goyenko 07.03.2014 / 17:11

1 resposta

0

A média de carga do Linux e alguns monitores de carga (superior) mostrarão a espera io como carga.

Basicamente, quando a CPU está esperando no dispositivo IO (e não está processando outra carga), ela ainda é considerada "carregada" e, portanto, contribui para as médias de carga.

    
por 07.03.2014 / 19:03