Usando a parte superior você pode ver quais segmentos estão sendo executados e quais estão dormindo. Isso deve permitir que você pelo menos saiba o que está drenando seus recursos se estivermos falando sobre um gargalo da CPU.
[xxx@absynthe proc]$ top -H
Deve abrir uma tela como esta:
top - 17:54:38 up 37 min, 2 users, load average: 0.03, 0.06, 0.07
Tasks: 338 total, 2 running, 336 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.1%us, 2.3%sy, 0.0%ni, 92.1%id, 1.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3852932k total, 1596468k used, 2256464k free, 47108k buffers
Swap: 5963768k total, 0k used, 5963768k free, 681728k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1853 root 20 0 196m 38m 15m S 9.7 1.0 1:57.58 Xorg
2186 xxx -6 0 564m 8828 7216 S 3.9 0.2 0:43.69 pulseaudio
2611 xxx 20 0 1095m 235m 27m S 3.9 6.3 2:29.52 firefox
2179 xxx 9 -11 564m 8828 7216 S 1.9 0.2 0:38.34 pulseaudio
2671 xxx 20 0 1087m 43m 18m S 1.9 1.2 0:06.06 plugin-containe
2820 xxx 20 0 1275m 67m 23m S 1.9 1.8 0:13.13 souphttpsrc13:s
2824 xxx 20 0 315m 13m 9492 S 1.9 0.4 0:02.35 gnome-terminal
3114 xxx 20 0 15088 1300 820 R 1.9 0.0 0:00.02 top
1 root 20 0 19236 1440 1152 S 0.0 0.0 0:01.07 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.17 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
A coluna chamada S (que é a 8ª da direita) mostra S para threads de espera e R para threads em execução. Você pode escolher a ordem de classificação pressionando F (capital) e escolhendo o campo Status do processo. Você pode então inverter a ordem de classificação pressionando R (capital) para poder ver os tópicos em execução primeiro.
Se o seu problema não for um afunilamento da CPU, precisaremos de mais algumas informações para ajudá-lo. Talvez você possa postar seu top como eu fiz no exemplo acima.
Espero que isso ajude.
EDITAR:
Se você quiser saber se está enfrentando algum tipo de afunilamento de E / S, pode emitir o seguinte comando: vmstat -s
e procurar pelos ticks da CPU de espera do IO. Se, executando o comando com um intervalo de alguns segundos, o valor subir muito, você pode estar tendo um afunilamento de E / S. Nesse caso, talvez seja melhor usar o iotop para ver quais processos estão usando mais recursos de E / S.