V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  superhot  ›  全部回复第 1 页 / 共 1 页
回复总数  13
21 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
感谢楼上各位老哥,先临时把 Heap 调低了一点,暂时没出什么问题,跟组长汇报了一下,之后考虑加上 Heap Dump 再观察一段时间。
21 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@ZZ74
@silencegg

请问是通过什么判断的堆外内存不够的? >99% committed ?`mmap`?

@zhouhu

非常感谢,解释得很详细了,但自己太菜了术语太多有点看不懂,想确认一下:

> 此时 cs eden 区: 122 ,survivor cs: 18 ,JVM 完全可以进行垃圾收集。
> 从统计 E|cs: 122 + s|cs: 18 = 140 来说,当内存不足时,JVM 完全时可以进行 GC 的

也就是说,还存在 Young Generation 的话,就意味着还有可以 GC 的空间,而不需要申请新的内存,但因为还没达到 `-Xms` 设置的上限,所以为了性能 JVM 没选择 GC ,而是直接继续申请分配内存了,是这样理解吗?

另外注意到

```
MaxMetaspaceSize: unlimited
CompressedClassSpaceSize: 1.00 GB
Initial GC threshold: 20.80 MB
Current GC threshold: 136.30 MB
```

单 `CompressedClassSpaceSize` 就有 1G ,加上 `-Xmx2847m`,剩下的内存肯定不够给其他进程分配的,但因为未设置 `-Xms`,所以最开始 JVM 给 Heap 申请的大小没那么多,但随着程序运行,JVM 想要申请更多内存时,算上已经被用掉的堆外内存及其他进程占用的内存后,剩余可用内存不够分配,所以导致 JVM 发生 OOM (但其实),是这样吗?

把 JVM 参数设为

```
-Xms2560m -Xmx2560m -XX:MaxMetaspaceSize=256m -XX:ReservedCodeCacheSize=240m
```

是否可行?
21 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@chihiro2014 实不相瞒,用的 VS Code + Java 插件,真是要多难用有多难用……主要是为了用 Copilot 跟 Devcontainer 。
21 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@zhouhu 没有参考标准,不知道如何判断业务规模,仅凭个人感觉不是很大,但现有架构已经撑不住了,虽然跑了 7 80 台 `t3.medium` 实例,还是经常超时死锁重启什么的…… 主要原因应该是代码质量差,之前的技术负责人跑路,祖传屎山摇摇欲坠。至于为什么是 2847……我也找不到人问 hhhh
感谢提供思路,我明天再查查 Heap Dump ,印象里好像是有这么个东西的。
21 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@sagaxu 请问这种情况下,怎样分配内存比较合理呢?我目前的想法也是先减少 Heap 大小试试看,但不知道靠什么来判断 `-Xmx` 的值设为多少比较合适。跟组长提方案的时候得拿证据……头疼。
22 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@yuemingming 在 Tomcat 的 Catalina 日志里看到的内容,正在连续处理请求的时候,每条日志的时间间隔小于 1s ,但明显该次请求还没处理完毕,上一条还是普通异常处理部分的日志,接下来就变成了类似 Tomcat startup 之类的信息,跟上一条隔了大概 30s ~ 70s 左右,以此来判断是重启过了。不过你说的这点确实需要再确认一下,这个重启到底跟 OOM 有没有关系。
22 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
@INCerry Java11 ,应该不算很高

@Geekerstar 链接贴在附言里了,函数名修改过,先谢过老哥,我去帖子学习下

@defunct9 只有升配置加内存这一条路了吗。。7 80 个实例,有点顶不住 ; w ;

@ZZ74 问过 copilot ,没什么干货

@wenning 我也有点怀疑这个


@xiwolaisi
@BBCCBB
@2Nfree
感谢提供思路,只是听过名词,对这些还没什么清晰的认识,我再研究研究
@vfs 不懂闭包与函数式编程就别乱说话 你 Java 的接口回调本质上也是把函数作为参数传递 没见你说 Java 乱
@libook
@meteor957
@kuxuan
@zbowen66
@hugepizza

看各位都推荐用 Koa ,我只简单写过一点点,想请教一下在实际工程中 Koa 对比 Express 的优势在哪里?特别是 Express 5 也支持异步中间件了。
@flmn 能否说说推荐与不推荐的理由?
96 天前
回复了 WildCat 创建的主题 Ruby on Rails 我回来了, Ruby on Rails
@shuimugan 超大上下文的大模型 这个怎么搞 好像 GitHub Copilot 连跨文件的上下文都理解不了
@potatowish 毕竟跟 React 一样是自家搞出来的技术
99 天前
回复了 superhot 创建的主题 数据库 如何定位数据库死锁问题
@shyrock
@maierhuang
感谢二位 我再研究研究
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2757 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 12:42 · PVG 20:42 · LAX 04:42 · JFK 07:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.