所以Java一直在挂我们的系统。 我们的开发人员仍然在研究这个,但作为一个pipe理员可以做什么。
在一个共有8个核心的双sockets系统上,在40的负载峰值。白天平均:平均负载:17.78,23.18,24.71根据这个: http : //blog.scoutapp.com/articles/2009/07/ 31 /理解的负载平均值
这是不正常的。
除了升级系统之外,可以做些什么呢? 我们的问题目前是随机系统挂起“任务java:4242被阻塞超过120秒”,然后在高负载恐慌。
可以做什么?
平均负荷: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---- rb 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 - 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
总之, nice
。
我觉得还有别的事情,你没有看过或告诉过我们。
xvda
是虚拟设备的指标。 这是我最有可能的猜测:
sar
这样的工具来进行报告。 atop
也是我的最爱。 至于这个问题本身的话题:降低平均负载的唯一方法是减less主动竞争CPU时间的进程数量。