线上问题解决内存溢出

最近服务器出现突然宕机,但应用已经无法响应,用户报障无法登陆,系统响应缓慢 。收到消息,马上登陆服务器查看,tomcat 线程还在,查看APM:
发现接口响应很慢,先解决用户问题,重启应用后正常;系统已经上线多年,最近2周都没有发布,查看日志也没有发现问题所在,一时不知道如何;
第二天群里相同的消息,服务器又宕机了,上服务器看和APM看,发现情况还是一样;
安装arthas , 查看jvm参数,发现系统没有专门配jvm的参数,马上补上:
【线上问题解决内存溢出】-Xmx8g -Xms8g -Xmn3g -Xss512k -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:InitialBootClassLoaderMetaspaceSize=256m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -Dspring.profiles.active=production -XX:+HeapDumpOnOutOfMemoryError -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseParNewGC -XX:HeapDumpPath=/tmp/dumpfile -Djava.security.egd=file:/dev/./urandom
继续观察 。。。。
下午又挂了,登录服务器查看内存快照:
好久没看过了,马上下载MAT:
选择最新的版本 , 记得切换回中国:
最新版有要求需要安装JAVA 11 , 又去下载一个java11,准备工作完成开工:
选择查询线程栈:
发现内存溢出问题,马上查看堆栈错误信息:
找到错误代码定位到位置,解决问题,轻轻松松又一天,下班
以上就是朝夕生活(www.30zx.com)关于“线上问题解决内存溢出”的详细内容,希望对大家有所帮助!

猜你喜欢