Por que há muito uso de CPU principalmente em operações de IO?

Por que há muito uso de CPU principalmente em operações de IO?

Eu tenho um processo de gravação de arquivos binários no sistema de arquivos ext3.

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

Existem 100 threads fazendo IO ao mesmo tempo. É normal ter quase metade da CPU do sistema usada? Existe uma maneira de analisar por que ele está usando tanto 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 banco de dados e depois escrevemos os dados em arquivos. O banco de dados está em uma máquina diferente, o log também está em uma máquina diferente. O que acontece é que verificamos se o arquivo já está lá, geralmente não está, então criamos um novo arquivo e escrevemos alguns dados nele.

aqui está o que eu vejo com

iostat -xkt1

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

Responder1

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

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

informação relacionada