Java多线程运算时cpu使用率上不去

PersistIn 发布于 2016/03/17 16:40
阅读 2K+
收藏 0

背景:

    1.一个java 应用,一个线程池,开启了6个线程,每个线程中运行100W次md5运算,每次运算从redis中取值,每个线程里单独分配了一个redis client(用的jedisPool.getResource()方法,redis中大约有800W条String型数据。

    2.8核cpu、8G内存

问题:

    运行后发现运算速度一直上不去,检查后发现cpu的使用率不高,反而redis的cpu占用率很高,不知道是不是应用程序和redis的协作不正常造成的,但是程序里只用到了redis.get(key)的操作;或者是java虚拟机在多核环境下运行需要额外配置?

    注:在windows 4核环境下运行时,每个cpu的使用率都达到了90%。

top:

top -H

以下是问题补充:

@PersistIn:在本地windows环境运行时cpu使用率能达到100% java应用25% redis 25% 其它50% (eclipse、桌面等)。 但是在服务器上cpu空闲稳定在75%,起初以为是应用程序只用到一个cpu,后来发现每个cpu都用到了,但是使用率都不高。。 (2016/03/17 17:17)
加载中
0
P
PersistIn
尝试过把并发线程数挑战到100,cpu使用率依旧很低。
0
_snake_
_snake_
这点运算量本就用不到多少CPU资源吧?
0
rockman27117
rockman27117
是不是IO跟不上了,应该是其它方面遇到瓶颈了
返回顶部
顶部