网站建设策划 优帮云,崇明装修公司哪家好,爱南宁下载安装,兼职网站编辑怎么做1.内存溢出的原因
OOM的排查思路_oom排查_java排坑日记的博客-CSDN博客
每个进程的内存#xff08;限制#xff0c;譬如2G#xff09;最大堆容量最大方法区容量程序计数器虚拟机栈和本地方法栈。多线程下每个线程栈越大#xff0c;越容易OOM. 1.堆内存溢出#xff08;OO…1.内存溢出的原因
OOM的排查思路_oom排查_java排坑日记的博客-CSDN博客
每个进程的内存限制譬如2G最大堆容量最大方法区容量程序计数器虚拟机栈和本地方法栈。多线程下每个线程栈越大越容易OOM. 1.堆内存溢出OOM 1大对象从数据库里一次请求了大量的数据 2同时引用的对象过多大批量的请求、批量任务导致 3内存泄漏使用了file之类的资源没有关闭回收 解决方案 1.-xmx 调高jvm堆内存空间 2.优化代码查询过滤 3.添加机器资源流量降级 4.内存泄漏定位内存泄漏原因优化代码 2. 栈内存溢出StackOverFlow -Xss 1.方法调用栈过长 2.线程数过多 3.MetaSpace OOM 1.加载的类过多 解决方案: -XX:MaxMetaSpaceSize 扩大元数据区大小 4.直接内存溢出 dump文件不会有明显异常 1.主要为native方法导致 、NIO 解决方案 配置参数调整内存大小 排查手段 1. 重启 2.heap dump获取内存快照通过分析工具进行定位 事先开启HeadDumpOnOutOfMemoryError这样出现OOM的时候能自动留下Dump留好第一现场。这是最推荐的方式。 JVM的启动参数中加入如下的一些参数 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/usr/local/oom 第一个参数意思是在OOM的时候自动dump内存快照出来第二个参数是说把内存快照存放在哪里 2.CPU占用过高
问题
1. 多线程并发数据密集型。
问题定位死锁同理 top查看进程jps查看进程对应的Java程序top -Hp 进程查看进程下线程的情况jstack线程ID查看执行栈信息