用jmeter对服务做性能压测,服务器CPU占用不超过15%,但是所压测的服务,进程占用CPU超过100%,无法定位到原因
找到进程中占用CPU占用最高的线程,然后用jstack查看该线程的堆栈信息,每次都存在十几个这样的WAITING信息,线程名称都是Thread-数字,好像是线程池问题,但是不知道具体什么原因导致占用CPU占用过高
这种CPU总占用不高,但是单进程占用CPU过高的问题,正常吗,如果不正常如何进一步定位呢
不正常 应该做了一个要资源的操作,一并发直接资源打满。你试试一个个并发用户加上去。单用户情况是否正常。
1、单服务占用内存高很正常,并发量大了就会产生。这正是要优化的重点工作;
2、从你截图来看,服务调用的资源存在瓶颈,一直在等待资源锁。要重点优化。因为不知道你的资源是数据库还是文件,不好判断,需要你再认真分析一下。希望有帮助到你。