¿Por qué hay mucho uso de CPU en operaciones principalmente de IO?

¿Por qué hay mucho uso de CPU en operaciones principalmente de IO?

Tengo un proceso de escritura de archivos binarios en el sistema de archivos ext3.

Supongo que este debería ser un proceso bastante sencillo en la CPU, pero veo un 45% de utilización de la CPU del sistema. Es un servidor de 40 núcleos y 80 subprocesos y hay una matriz RAID 1+0 de 16 discos.

Hay 100 subprocesos realizando IO al mismo tiempo. ¿Es normal que se utilice casi la mitad de la CPU del sistema? ¿Hay alguna forma de analizar por qué se utiliza tanta CPU?

La CPU del usuario ronda el 10-15%.

El proceso es así: leemos algunos datos de un archivo, verificamos si los datos están en la base de datos y luego los escribimos en archivos. Db está en una máquina diferente, el registro también está en una máquina diferente. Lo que sucede es que verificamos si el archivo ya está allí, generalmente no está allí, entonces creamos un archivo nuevo y escribimos algunos datos en él.

esto es lo que veo con

iostato -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

Respuesta1

El promedio de carga de Linux y algunos monitores de carga (arriba) mostrarán io-wait como carga.

Básicamente, cuando la CPU está esperando al dispositivo IO (y no procesa otra carga), todavía se considera "cargada" y, por lo tanto, contribuye a los promedios de carga.

información relacionada