地址:http://suo.im/5Y3RGF
作者:ignorewho
前言:
最近项目上在测试人员压测过程中发现了OOM问题,项目使用springboot搭建项目工程,通过查看日志中包含信息:unable to create new native thread内存溢出的三种类型:
1.第一种OutOfMemoryError:PermGen space,发生这种问题的原意是程序中使用了大量的jar或class 2.第二种OutOfMemoryError:Java heap space,发生这种问题的原因是java虚拟机创建的对象太多 3.第三种OutOfMemoryError:unable to create new native thread,创建线程数量太多,占用内存过大 初步分析: 初步怀疑是线程创建太多导致,使用jstack 线程号 > /tmp/oom.log将应用的线程信息打印出来。查看oom.log,发现大量线程处于Runnable状态,基本可以确认是线程创建太多了。