Alta carga pero bajo uso de CPU

Alta carga pero bajo uso de CPU

topmuestra una carga extremadamente alta, pero el uso de la CPU es relativamente bajo. La carga alta es consecuencia de muchos (~30) procesos, iniciados con un nivel de amabilidad de 15, por lo que el sistema responde.

top - 18:51:04 up 28 days, 16:30,  5 users,  load average: 254.30, 267.54, 265.42
Tasks: 421 total,  15 running, 406 sleeping,   0 stopped,   0 zombie
%Cpu(s): 14.4 us,  7.6 sy, 76.7 ni,  1.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:  98940592 total, 98165984 used,   774616 free,  1577264 buffers
KiB Swap: 10059673+total,   659128 used, 99937600 free. 56868984 cached Mem

PID   USER  PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                              
49138 root  20   0  0.226t 0.025t 0.012t S 152.4 26.9   9192:51 java                                                                                 
15617 root  35  15 3821500 2.122g  16820 R  96.5  2.2 476:47.21 run_proc                                                                             
30440 root  35  15 5654432 200788  22960 S  82.6  0.2  18:49.65 run_proc                                                                  
37970 root  35  15 4706700 173912  18268 R  82.0  0.2   2241:08 run_proc                                                                  
45289 root  35  15 3723844 187600   8880 R  80.3  0.2   2142:22 run_proc                                                                  
11930 root  35  15  986632 150748  15836 R  52.2  0.2  31:06.74 run_proc                                                                         
 9921 root  35  15 2020804 105872   4812 S  24.8  0.1   2369:07 app                                                                              
30500 root  35  15 1455168 109312   7172 S  21.8  0.1 619:19.67 app                                                                              
 9963 root  35  15 3011908 144264  16804 S  21.2  0.1 282:59.01 run_proc                                                                  
24406 root  35  15 1989336  41164   3800 S  18.5  0.0 447:19.64 app                                                                              
46617 root  35  15 4159848 144072  17428 S  17.5  0.1 277:42.93 run_proc                                                                  
11280 root  35  15 4160060 148816  17484 S  16.9  0.2 283:00.52 run_proc                                                                  
24409 root  35  15 4889308 154020  17816 S  15.9  0.2 295:25.44 run_proc                                                                  
45562 root  35  15 3011940 148496  16860 S  15.9  0.2 286:21.70 run_proc                                                                  
22428 root  35  15 4422012 144080  17440 S  14.5  0.1 280:29.95 run_proc                                                                  
41371 root  35  15 1532440 206976  14208 S  13.6  0.2 291:10.54 app                                                                              
44285 root  35  15 5157436 162172  17904 R  13.6  0.2 298:19.36 run_proc                                                                  
 3793 root  35  15 4421984 150392  17432 S  12.6  0.2 293:43.98 run_proc                                                                  
41325 root  35  15 4553164 149596  17460 S  12.6  0.2 292:41.16 run_proc                                                                  
 2571 root  35  15 3011924 144388  16804 S  12.2  0.1 286:04.91 run_proc                                                                  
 4707 root  35  15 3011924 142384  16832 S  12.2  0.1 283:09.38 run_proc                                                                  
33573 root  35  15 4159992 144296  17432 R  12.2  0.1 282:51.66 run_proc                                                                  
42805 root  35  15 3011900 146272  16800 S  12.2  0.1 275:29.13 run_proc                                                                  
47365 root  35  15 4889804 154008  17740 R  12.2  0.2 286:58.69 run_proc                                                                  
33670 root  35  15 4159452 147980  17464 S  10.9  0.1 284:35.61 run_proc                                                                  
 1316 root  35  15 2100388 187292  12700 S  10.6  0.2 403:51.63 app                                                                              
35410 root  35  15 4295312 153696  18072 R  10.6  0.2 288:10.70 run_proc                                                                  
39749 root  35  15 4356064 152000  17436 R  10.6  0.2 284:17.87 run_proc                                                                  
12727 root  35  15 3011940 150384  16832 S   9.6  0.2 276:58.67 run_proc                                                                  
  484 root  35  15 4421584 149924  17432 S   9.3  0.2 275:11.69 run_proc                                                                  
10099 root  35  15 5085108 158916  17784 S   9.3  0.2 296:36.48 run_proc                                                                  
17062 root  35  15 4356448 144248  17432 S   8.9  0.1 281:26.88 run_proc                                                                  
20880 root  35  15 4291720 144784  17432 S   8.6  0.1 282:45.64 run_proc

```

Lo que realmente no entiendo es por qué el uso de la CPU es tan bajo. Quiero decir, si hay tantos procesos en la cola de ejecución, ¿por qué las CPU no los ejecutan en lugar de estar inactivas? Lo que espero aquí es un uso de la CPU del 1200% (el sistema tiene 12 núcleos de CPU). Como puede observar, aquí no hay una gran utilización de E/S.

root@~# iostat -d -x
Linux 3.13.0-119-generic (server)   11/20/17    _x86_64_    (12 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.16    40.12   28.82   75.55  1176.18  2775.77    75.73     0.49    4.72    5.41    4.46   0.38   3.97

También vale la pena mencionar que cada uno de esos run_procprocesos crea ~30 subprocesos, la mayoría de ellos en Sel estado:

root@d:~# top -H -p 46660

  PID USER  PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
48563 root  35  15 3011912 138636  13156 R  3.7  0.1 339:33.64 run_proc
48309 root  35  15 3011912 138636  13156 R  0.7  0.1   1:35.97 run_proc
48281 root  35  15 3011912 138636  13156 S  0.3  0.1   1:35.50 run_proc
48294 root  35  15 3011912 138636  13156 R  0.3  0.1   1:35.70 run_proc
46660 root  35  15 3011912 138636  13156 R  0.0  0.1   0:40.41 run_proc
46959 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46960 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46961 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46962 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46963 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46964 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46965 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
46966 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
47717 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
48254 root  35  15 3011912 138636  13156 R  0.0  0.1   1:36.84 run_proc
48270 root  35  15 3011912 138636  13156 R  0.0  0.1   1:35.32 run_proc
48271 root  35  15 3011912 138636  13156 R  0.0  0.1   1:35.54 run_proc
48272 root  35  15 3011912 138636  13156 S  0.0  0.1   1:38.97 run_proc
48278 root  35  15 3011912 138636  13156 S  0.0  0.1   1:35.45 run_proc
48279 root  35  15 3011912 138636  13156 R  0.0  0.1   1:36.43 run_proc
48286 root  35  15 3011912 138636  13156 R  0.0  0.1   1:37.92 run_proc
48296 root  35  15 3011912 138636  13156 R  0.0  0.1   1:37.09 run_proc
48297 root  35  15 3011912 138636  13156 S  0.0  0.1   1:35.84 run_proc
48298 root  35  15 3011912 138636  13156 S  0.0  0.1   1:38.47 run_proc
48312 root  35  15 3011912 138636  13156 S  0.0  0.1   1:37.07 run_proc
48317 root  35  15 3011912 138636  13156 R  0.0  0.1   1:36.06 run_proc
48323 root  35  15 3011912 138636  13156 S  0.0  0.1   1:37.90 run_proc
48360 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
48362 root  35  15 3011912 138636  13156 S  0.0  0.1   0:09.49 run_proc
48445 root  35  15 3011912 138636  13156 S  0.0  0.1   0:40.89 run_proc
48447 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
48448 root  35  15 3011912 138636  13156 S  0.0  0.1   0:00.00 run_proc
48559 root  35  15 3011912 138636  13156 S  0.0  0.1   0:22.75 run_proc
48560 root  35  15 3011912 138636  13156 S  0.0  0.1   0:05.26 run_proc
48561 root  35  15 3011912 138636  13156 S  0.0  0.1   0:22.78 run_proc
48562 root  35  15 3011912 138636  13156 S  0.0  0.1   0:23.02 run_proc

Respuesta1

Comoanotado en los comentarios, eneste caso particularEl problema fue: la utilización de la CPU se informa en varios números: 14.4 us, 7.6 sy, 76.7 ni. Citando de"¿Qué significa 'agradable' en los gráficos de utilización de la CPU?"-

  • %usuario: Porcentaje de utilización de CPU que se produjo durante la ejecución a nivel de usuario (aplicación).
  • % agradable: porcentaje de utilización de CPU que se produjo durante la ejecución a nivel de usuario con buena prioridad.
  • %sistema: Porcentaje de utilización de CPU que se produjo durante la ejecución a nivel del sistema (kernel).

El uso de "prioridad agradable", que fue alto en este caso particular, indica "el % de tiempo de CPU ocupado por procesos a nivel de usuario con un valor agradable positivo (prioridad de programación más baja; consulteman nicepara detalles)".


Si encuentra una carga alta con bajautilización total de la CPU, recuerde que el "promedio de carga" en Linux incluye cualquier tarea en estado ininterrumpible (hay muchas razones para que una tarea esté en ese estado, como esperar E/S) - consultePreguntas y respuestas sobre este error del servidorpara obtener algunas explicaciones breves o, si desea profundizar, lea"Promedios de carga de Linux: resolviendo el misterio" por Brendan Gregg.

También relevante:Promedio de carga alta con utilización modesta de CPU y casi sin E/Spor error del servidor.

información relacionada