服务端
文章平均质量分 77
lil_battleKing
这个作者很懒,什么都没留下…
展开
-
一次服务器上g1回收器发生fullgc的粗浅理解与记录
1.现场监控截图由上面两张图可以看出,1. old区内存使用并不多,为何会fullgc。2.年轻代确实没有进行gc,所以可以确定当时确实进行了fullgc。2.gc log我们服务器使用的是g1回收器,找到当时时间节点的gc log,截图如下:3.分析log,提出问题我们从监控中可以看到,fullgc时:总计堆内存2051m -> 142m, 总共回收了 1927m在年轻代,eden回收了 1532m, survivor44m,总计 1576m说明老年代总共只回收了 1原创 2021-04-17 00:39:27 · 6826 阅读 · 0 评论 -
java内存问题排查
简介 JVM堆外内存难排查但经常会出现问题,这可能是目前最全的JVM堆外内存排查思路。通过本文,你应该了解:pmap 命令gdb 命令perf 命令内存 RSS、VSZ的区别java NMT起因这几天遇到一个比较奇怪的问题,觉得有必要和大家分享一下。我们的一个服务,运行在docker上,在某个版本之后,占用的内存开始增长,直到docker分配的内存上限,但是并不会OOM。版本的更改如下:升级了基础...转载 2020-12-24 20:01:40 · 532 阅读 · 1 评论 -
一次线上oom问题记录
某天早上发现服务无法正常访问,于是展开问题排查。1。首先查看日志,发现有oom日志存在。这时候看到oom,犯了想当然的错误,认为是内存不足,堆内存空间已经用完。于是查看代码发现某个模块中有如下代码:谁写的,站出来,我保证不打你。当时盲目的认为就是使用这个线程池的问题(关于此线程池的弊端不再赘述),于是心满意足的修改完这行之后重新执行了。2。没想到过了一段时间,服务又无法正常访问了,这让笔者十分疑惑,查日志时又发现了相同的日志:到了这里,笔者已经意识到,这应该是机器原因导致的,原创 2020-09-11 21:03:50 · 1030 阅读 · 0 评论