性能问答>OOM后,进程一直都在,还一直在fullgc>
8回复
8月前

OOM后,进程一直都在,还一直在fullgc



jdk 1.8 ,g1垃圾收集器 。目前线上有一个应用,因为metaspace不够,oom了。然后进入机器查看发现cpu能达到80%,发现是一个线程在不停的fullgc。为啥tomcat oom了,为啥进程还在呢? 为啥gc线程还能继续工作?

869 阅读
请先登录,再评论

OOM 了,,只是其中一个线程挂了,,还不至于直接崩溃。 崩溃的这个线程的内存得到释放了,其他继续用。

8月前

oom会抛出异常,如果程序catch了,就不会退出

8月前

oom发生了,不一定导致进程挂了。会导致发生oom的线程出现退出。

8月前

oom的错误贴一下呢,oom也不是说直接退出进程的,可能只是回收效率低

8月前
回复 空无_废弃:

java.lang.OutOfMemoryError: Metaspace 大概就这样的

8月前回复

得看发生oom的线程是主线程还是其他线程,除非是主线程oom,否则是不会导致进程退出的。既然主进程没有影响到,那应该就不会影响gc线程吧

8月前
回复 NeverMore:

不是,tomcat 活跃的都是自身线程池中的,它的线程会一直存在,除非你关闭

8月前回复
回复 rock04:

那tomcat中的活跃线程都不算主线程吧?

8月前回复