Como nota à parte, a média de carga também inclui itens aguardando atividade de disco (isto é, assediar o disco), bem como os que aguardam pelo cpu, é uma soma de ambos ... então você pode ter problemas em um ou outro.
Veja "O Linux também inclui [em sua média de carga] processos em estados de suspensão ininterruptos (geralmente esperando para atividade de disco) "
Como nota de rodapé, o problema específico com que me deparei foi que eu tinha alta carga média, mas também muita CPU ociosa e baixo uso de disco.
Parece que, pelo menos no meu caso, às vezes os threads / processos aguardando E / S aparecem na média de carga, mas não causam um aumento na coluna "await". Mas eles ainda estão ligados a E / S.
Você pode dizer que este é o caso com o seguinte código, se você executá-lo em jruby (apenas 100 threads com lotes de E / S cada):
100.times { Thread.new { loop { File.open('big', 'w') do |f| f.seek 10_000_000_000; f.puts 'a'; end}}}
O que dá uma saída principal como esta:
top - 17:45:32 up 38 days, 2:13, 3 users, load average: 95.18, 50.29, 23.83
Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.5%us, 11.3%sy, 0.0%ni, 85.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32940904k total, 23239012k used, 9701892k free, 983644k buffers
Swap: 34989560k total, 0k used, 34989560k free, 5268548k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31866 packrd 18 0 19.9g 12g 11m S 117.0 41.3 4:43.85 java
912 root 11 -5 0 0 0 S 2.0 0.0 1:40.46 kjournald
Assim, você pode ver que há muita CPU ociosa, 0,0% de wa, mas uma média de carga muito alta.
iostat mostra o disco como basicamente ocioso:
avg-cpu: %user %nice %system %iowait %steal %idle
9.62 0.00 8.75 0.00 0.00 81.62
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 49.00 0.00 6.40 0.00 221.60 69.25 0.01 0.81 0.66 0.42
sda1 0.00 49.00 0.00 6.40 0.00 221.60 69.25 0.01 0.81 0.66 0.42
sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
veja também link
Como uma nota adicional, isso também parece implicar que (pelo menos neste caso - rodando o CentOS) a média de carga inclui cada thread separadamente no total.