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 查看内存使用情况