服务器JVM每隔几分钟发生一次GC,一天挂了四次,请教各位大神原因?

发布于 2022-01-07 10:11:06 字数 391 浏览 794 评论 18

每隔三四分钟,就发生一次GC,大多数情况服务无影响,但今天有四次服务器CPU长期100%,导致直接无法访问

问下怎么查是程序那块代码引起的?请教各路大神

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

苍暮颜 2022-01-07 20:02:32

这玩意我记得会随着用户注销而清理的,用户session也应该有个存活时间

想挽留 2022-01-07 20:02:31

有一个配置 shiro提供了一个清理的shecdlue

霞映澄塘 2022-01-07 20:02:30

一般都是代码的原因 可以有意的注意下 在什么情况下会GC 去找导致GC那段代码

无声静候 2022-01-07 20:02:30

趁这个帖子人数多,问下,java Shiro的session过期后,还会存在于内存中,怎么才能及时从内存中清理掉?

羁拥 2022-01-07 20:02:30

回复
需要配置shecdlue

心欲静而疯不止 2022-01-07 20:02:29

确实有几十万,自己也是醉了

无声静候 2022-01-07 20:02:27

回复
不是,是Tomcat停止时会序列化缓存,启动时又加载了,没有及时清理,日累月积后挂了

别低头,皇冠会掉 2022-01-07 20:02:27

现在的服务端,最少也是2核4G的配置吧,你不会把几十或上百万的数据放到内存里了吧,然后频繁GC与加载。

英雄似剑 2022-01-07 20:02:26

回复
所以我将我们公司的ehcache改成了redis缓存,用内存缓存是有点不好管理

路还长,别太狂 2022-01-07 20:01:58

回复
请问下这个缓存指的是什么?session?

清晨说ぺ晚安 2022-01-07 20:01:50

回复
是的

秉烛思 2022-01-07 19:59:13

回复
Tomcat停止时会序列化缓存,这个是啥

兮颜 2022-01-07 19:55:29

谢谢各位回复,暂时找到原因了,缓存了过多对象引起的老年代占满,导致频繁GC

爱你是孤单的心事 2022-01-07 19:49:14

去年处理过一次你这种情况,我当时是查询慢引起缓存没起作用导致的。你很可能一样的原因.

三月梨花 2022-01-07 19:47:03

dump下来看看

 

傾城如夢未必闌珊 2022-01-07 19:41:44

gc和内存有关,你贴一个cpu的,你看一下堆内存的变化,考虑内存泄漏问题,据我的经验检查一下io相关的,比如数据库连接,网络socket等是不是没有关闭;还有就是缓存,hashMap之类的,是不是在一直在做添加

毁梦 2022-01-07 19:13:59

胡说八道!内存占用过高才导致gc行为,内存溢出则需要查看内存快照,快照间隔的增量内存分析出具体引发内存增加的原因。如果是netty则有可能是网络不稳定导致队列过长,从而内存爆增,解决方方法可以尝试延长因超时重连时间。cpu占用过高则要考虑算法的优化,同时检查是否使用了大量的线程同步锁导致线程阻塞。

岁月打碎记忆 2022-01-07 17:19:57

目测内存泄漏了。cpu100%估计也是gc现成引起的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文