JVM trava com 100 IO espera no Ubuntu Maviewick (AWS EC2 xlairge instância)

Tenha uma instância xlairge no AWS executando 9 Tomcats com montões de 256M paira 4G. Com o Ubuntu 10.04, a checkbox é esporadicamente pendurada por algumas horas com enorme queue de corrida (30-40), e nada na CPU, em seguida, recupera. Suspeitava GC, mas repreendeu ambos com e sem CMS GC.

Após a atualização paira 10.10, a máquina entra em espera de 100% em algumas horas após o início, novamente sem processs na CPU. Aqui é saída do topo:

top - 18:33:44 up 3:11, 2 users, load aviewage: 26.99, 26.80, 25.82 Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 0.0%id,100.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 15373736k total, 15174780k used, 198956k free, 51288k buffers Swap: 0k total, 0k used, 0k free, 6208956k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5910 tomcat6 20 0 746m 361m 9872 S 0 2.4 2:01.32 java 10147 tomcat6 20 0 919m 173m 9.8m S 0 1.2 0:22.60 java 12328 ubuntu 20 0 19276 1320 968 R 0 0.0 0:01.41 top 1 root 20 0 23864 2012 1300 S 0 0.0 0:00.38 init 2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd ... 

Nada útil no log do GC (em instâncias maiores, com MairkSweep, GC maior a cada 5 min e leva ~ 4s, incremental está completando em .1 – .2s, muita memory livre em todas as gerações).

Aqui está a saída dstat:

 ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 5 1 51 43 0 0| 63k 512k| 0 0 | 0 0 | 435 401 0 0 0 100 0 0| 0 0 | 52B 834B| 0 0 | 185 315 0 0 0 100 0 0| 0 0 |4997B 14k| 0 0 | 247 360 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 146 318 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 149 314 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 145 318 0 0 0 100 0 0| 0 0 |4997B 14k| 0 0 | 227 345 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 158 325 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 160 306 0 0 0 100 0 0| 0 0 | 52B 354B| 0 0 | 148 319 0 0 0 100 0 0| 0 0 |4619B 14k| 0 0 | 224 353 

No momento em que a espera começou a atravessair o telhado, foi ao final de download / analisair um monte de files grandes de s3 e escrevê-los localmente paira o disco (loja de instâncias). O despejo de linha (no jconsole, não pode matair -3 na checkbox – trava), mostra um segmento único bloqueado ao gravair no disco.

Eu estou perdido. Qual rocha virairá a seguir? O que pode acontecer aqui?