Java常见的内存溢出
作为开发,生产过程总会碰到OOM问题,通常我们常见的无外乎以下几种:
- OutOfMemoryError: PermGen space
场景:一般常见于程序中使用了大量的jar或class的场景
建议:排查删除不必要的引用jar;必须引用的第三方jar,是否因为版本或引用方式问题,导致常驻内存,GC无法回收。
- OutOfMemoryError: Java heap space
场景:java虚拟机创建的对象太多;循环依赖引用等,导致GC无法回收,堆内存吃紧
建议:排除项目的死循环、循环依赖;集合类建议设置边界,切忌无限添加。
- OutOfMemoryError:unable to create new native thread
场景:创建线程数量太多,占用内存过大
建议:排除线程死锁;排除线程池、数据库连接池等各种池的参数设置是否合理,结合实际业务场景,考虑并发场景下的池使用是否恰当。
浙公网安备 33010602011771号