java进程cpu占用率过高

今天出现生产问题,java进程cpu占用率达到160%左右,但是有点奇葩的是,排查后,发现并没有哪个线程占用了过高的cpu,而是有100多个线程,平均每个占用了1%以上,这种问题应该怎么排查解决

调查一下怎么会有100个进程同时运行,需要这么多线程吗?多余的禁掉。

你应该用线程池技术等,而不是开这么多线程,线程开过多也会消耗大量系统资源

应该排查一下,这些线程是否有进行的销毁动作,或者代码中是不是没有对线程进行销毁。还有是不是某个资源出现问题,导致线程一直在等待,长时间没有唤醒

有可能是sql不够优化。看一下数据库,show full processlist。看看那条sql执行时间最长。如果卡的时间比较长就是这条sql语句问题。否则就是你程序问题