Tomcat OOM

我在批量插入140w+的数据到hive和mysql的时候,服务器插入到90w的时候OOM了。

Java.lang.OutOfMemeoryError:GC overhead limit exceeded

这时候我tomcat设置的最大堆内存为1G。

 

于是我将tomcat的jvm改成这样

tomcat/bin/catalina.sh

JAVA_OPTS="-Xms1024m -Xmx12288m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/log/oom.hprof"

-Xms1024m jvm启动时最小内存为1024M

-Xmx12288m jvm最大内存为12G

-XX:+HeapDumpOnOutOfMemoryError 参数表示当JVM发生OOM时,自动生成DUMP文件

-XX:HeapDumpPath=${目录} 参数表示生成DUMP文件的路径,可以指定文件名称

 

然后通过jstat -gc pid 刷新时间 来查看堆和gc的信息

jmap -heap pid 查看内存使用情况

posted @ 2020-07-10 15:59  孤身!  阅读(572)  评论(0编辑  收藏  举报