Quando top não identifica o uso da CPU ou a espera de E / S como a origem da média de carga, normalmente é uma tarefa ou tarefas em suspensão ininterrupta (uma tarefa no seu caso). Identifique-os com este comando:
ps -e -o state,pid,cmd | grep ^D
O vmstat também pode ser usado, mas apenas para fornecer o número de tarefas em suspensão ininterrupta. Exemplo:
doug@doug-64:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 168 69980 124836 2525672 0 0 252 29 1 0 0 0 99 0
onde as tarefas em modo ininterrupto de suspensão estão sob a coluna "b" em "procs".
Seria altamente incomum observar qualquer número diferente de zero constante na coluna "r" (processos aguardando tempo de execução) sem observar também o uso da CPU e / ou espera de E / S. Nos dois exemplos abaixo, um é para um sistema descarregado e um é para um sistema carregado.
doug@s15:~/cse$ vmstat 10 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 99072 3302096 415420 7927960 0 0 2 9 4 0 2 0 98 0 0
0 0 99072 3302320 415420 7927960 0 0 0 4 68 160 0 0 100 0 0
0 0 99072 3302304 415420 7927960 0 0 0 9 62 132 0 0 100 0 0
0 0 99072 3302064 415420 7927960 0 0 0 0 63 138 0 0 100 0 0
0 0 99072 3302040 415420 7927960 0 0 0 12 66 155 0 0 100 0 0
0 0 99072 3302024 415420 7927960 0 0 0 16 90 150 1 0 99 0 0
0 0 99072 3302008 415420 7927960 0 0 0 6 61 131 0 0 100 0 0
0 0 99072 3301868 415424 7927960 0 0 0 5 72 167 0 0 100 0 0
0 0 99072 3301852 415432 7927956 0 0 0 13 66 145 0 0 100 0 0
0 0 99072 3301836 415432 7927960 0 0 0 12 63 133 0 0 100 0 0
doug@s15:~/temp$ vmstat 10 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
13 0 99072 1271288 415992 9952884 0 0 2 9 4 0 2 0 98 0 0
13 0 99072 1271304 415992 9952884 0 0 0 0 2670 1198 99 0 1 0 0
13 0 99072 1270932 415996 9952884 0 0 0 12 2696 1240 99 0 1 0 0
13 0 99072 1270916 415996 9952884 0 0 0 1 2662 1166 99 0 1 0 0
13 0 99072 1270800 416000 9952884 0 0 0 1 2666 1205 99 0 1 0 0
13 0 99072 1270636 416004 9952884 0 0 0 18 2720 1264 99 0 1 0 0
13 0 99072 1270644 416004 9952884 0 0 0 3 2670 1170 99 0 1 0 0
13 0 99072 1270520 416004 9952884 0 0 0 0 2673 1218 99 0 1 0 0
14 0 99072 1269116 416008 9952888 0 0 0 14 2692 1250 99 0 1 0 0
14 0 99072 1271140 416008 9952888 0 0 0 1 2662 1168 99 0 1 0 0
doug@s15:~/temp$ uptime
14:46:47 up 12 days, 22:23, 4 users, load average: 12.59, 12.15, 8.31
Se algum tipo de processo suspenso na fila for suspeito, tente identificar:
ps -e -o state,pid,cmd | grep -v "ps -e -o" | grep ^R
Exemplo (onde eu tenho 3 processos pesados em execução, corretamente):
doug@s15:~/temp$ ps -e -o state,pid,cmd | grep -v "ps -e -o" | grep ^R
R 9827 ../c/consume 90.000000 50.000000 100.000000
R 9828 ../c/consume 90.000000 50.000000 100.000000
R 9829 ../c/consume 90.000000 50.000000 100.000000
Faça o comando algumas vezes para ajudar a identificar o verdadeiro culpado, pois pode haver processos reais espúrios sendo executados.
A última coisa a tentar é apenas olhar para toda a lista de tópicos para quaisquer anomalias. Exemplo:
doug@s15:~/ubuntu-help$ ps -e -o state,pid,cmd
S PID CMD
S 1 /sbin/init
S 2 [kthreadd]
...
S 17579 [kworker/u16:0]
R 17613 ps -e -o state,pid,cmd
S 22071 [kworker/0:0]
Onde algo diferente de "S" ou "R" na primeira coluna é de interesse. Talvez filtre a lista com:
ps -e -o state,pid,cmd | grep -v ^S