Em suma, nice
.
Então, o Java está pendurando nossos sistemas. Nossos desenvolvedores ainda estão olhando para isso, mas como um administrador, o que pode ser feito.
Em um sistema de soquete duplo com 8 núcleos, picos de carga a 40. Em média durante o dia:
média da carga: 17.78, 23.18, 24.71
De acordo com isso: link
não é normal.
além de atualizar o sistema, o que pode ser feito sobre isso? nosso problema atualmente é aleatoriamente sistema trava com "tarefa java: 4242 bloqueado por mais de 120 segundos", em seguida, entra em pânico durante alta carga.
O que pode ser feito?
Durante uma carga de: média da carga: 21.40, 21.76, 21.80
iostat:
avg-cpu: %user %nice %system %iowait %steal %idle
13.75 0.00 0.49 0.00 0.00 85.77
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvda 2.16 1.82 32.63 832500 14917166
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 21172 1272200 138540 583268 0 0 0 3 9 5 14 0 86 0
top:
top - 14:41:02 up 5 days, 7:26, 2 users, load average: 23.01, 22.17, 21.82
Tasks: 103 total, 1 running, 102 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 5291864k total, 4017092k used, 1274772k free, 138544k buffers
Swap: 1959924k total, 21172k used, 1938752k free, 583332k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25637 root 20 0 1691m 559m 13m S 2 10.8 4:46.91 java
848 root 20 0 3044m 2.3g 9844 S 1 45.4 5521:37 java
27729 root 20 0 19272 1272 948 R 0 0.0 0:00.03 top
1 root 20 0 23760 1696 1200 S 0 0.0 0:01.49 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.29 ksoftirqd/0
4 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/0:0
Em suma, nice
.
Eu sinto que há algo mais acontecendo que você não viu nem nos contou.
xvda
é um indicador de um dispositivo virtual. Aqui estão meus palpites mais prováveis:
sar
para relatórios. atop
também é uma das minhas favoritas. Quanto ao tópico da pergunta em si: a única maneira de diminuir a média de carga é reduzir o número de processos que competem ativamente pelo tempo de CPU.