How Java program divided between CPUs (in multi CPUs systems)
I start Java my Java application on system with 16 CPUs, but mostly loads on first CPU. Is it normal? If not, how can I repair it?
top - 18:40:52 up 42 days, 22:18, 2 users, load average: 8.36, 11.87, 15.61
Tasks: 214 total, 2 running, 212 sleeping, 0 stopped, 0 zombie
Cpu0 : 42.3%us, 1.7%sy, 0.0%ni, 52.0%id, 0.0%wa, 0.0%hi, 4.0%si, 0.0%st
Cpu1 : 6.3%us, 0.7%sy, 0.0%ni, 63.8%id, 29.2%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 13.0%us, 0.7%sy, 0.0%ni, 63.2%id, 23.1%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 6.6%us, 1.0%sy, 0.0%ni, 66.9%id, 25.5%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 14.7%us, 0.3%sy, 0.0%ni, 61.3%id, 23.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 7.0%us, 1.0%sy, 0.0%ni, 66.4%id, 25.6%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 15.3%us, 0.7%sy, 0.0%ni, 61.1%id, 22.9%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 6.0%us, 1.7%sy, 0.0%ni, 52.5%id, 39.9%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 33.2%us, 1.0%sy, 0.0%ni, 46.5%id, 19.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 6.0%us, 1.0%sy, 0.0%ni, 67.0%id, 26.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 12.3%us, 0.3%sy, 0.0%ni, 62.0%id, 25.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 6.6%us, 1.0%sy, 0.0%ni, 73.4%id, 18.9%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 15.9%us, 0.7%sy, 0.0%ni, 60.8%id, 22.6%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 8.0%us, 1.0%sy, 0.0%ni, 61.8%id, 29.2%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 10.6%us, 0.3%sy, 0.0%ni, 65.9%id, 23.2%wa, 0.0%hi, 0.0%si, 0.0%st
C开发者_运维问答pu15 : 3.0%us, 1.0%sy, 0.0%ni, 70.4%id, 25.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4037612k total, 4020856k used, 16756k free, 13164k buffers
Swap: 5859064k total, 260k used, 5858804k free, 2275596k cached
Thanks!
Is your application single-threaded? If so you will need to redesign your application to make use of additional CPUs.
There are pretty high values of %wa for the other CPU's, which might suggest that some disk access or similar thing is the bottleneck. You need to provide much more detail about your application though...
精彩评论