性能问答>tomcate以服务方式启动cpu占用达到90%>
8回复
2月前

tomcate以服务方式启动cpu占用达到90%


环境参数
  • 操作系统Windows
  • 操作系统版本7
  • JDK版本JDK8
  • 内存4GB
  • CPU核数null
  • 操作系统位数64位
rk-data-acquisition.hprof649.59MB
查看详情

tomcate启动cpu占用达到90%

664 阅读
请先登录,再评论

top -H或者htop命令可查看占用CPU最高的线程,结合jstack导出线程日志,确认下对应线程是做什么的。

2月前
回复 Aoe:

好的,谢谢

2月前回复

tomcat😂多了一个e

1月前

查询你的dump 文件,发现很多mysql传了很多对象没有释放。与om.mysql.jdbc.JDBC42ResultSet有关,具体要看代码

mysql很多数组对象没有释放1.jpg

mysql很多数组对象没有释放2.jpg

12月前
回复 宝琳:

可以看到最顶层的就是 java.lang.Object[106710] 类,经过层层引用,存在大量的com.mysql.jdbc.ByteArrayRow类,我不知道这个类是做什么用的,但看起来就是这个类的对象太多,导致内存占用过大。可以看到 internalRowData标签里面有一个数组元素属性,这个属性记录了这次查询的脚本,其实就是一个全表查询,没有任何查询条件。

也就是说这次内存溢出的原因就是因为查询了数据库某个表全部的数据,把内存撑爆了。

2月前回复

看你分享的内存dump分析结果显示, io.netty.util.concurrent.FastThreadLocalThread和com.mysql.jdbc.JDBC42ResultSet占了92%,会不会跟这两个地方有一些关系?

2月前

看一下消耗CPU最多的线程到底在干什么,可借助Arthas或useful-scripts来查看

2月前
回复 鸠摩:

好的,谢谢

2月前回复