生产环境jvm内存溢出问题处理OutOfMemoryError
问题描述
服务正常部署运行后,前端界面偶尔出现请求无响应情况,页面出现持续性卡顿。服务器日志报下面这个异常:
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main-SendThread(192.168.200.102:2181)"
排查问题
查看log日志,联系运维查看服务器内存、cpu使用情况,很明显,这个服务是两个节点部署的,图中上面一个结点的内存使用率过高。执行操作时,一旦节点切换到它,操作就会出现jvm内存溢出。
发现问题
运维查看故障节点服务器的jvm参数时,发现jvm参数根本没有配置,使用的是java默认的内存大小,所以基本问题确认,需要调整当前故障节点的jvm内存大小分配。
解决问题
"java","-Dfile.encoding=UTF-8","-Xmx4096m","-Xms4096m","-XX:PermSize=256m","-XX:MaxPermSize=512m"
经调整为4Gjvm内存大小,服务操作正常运行,没有再出现卡顿,没有响应的情况。
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!