V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wangyg  ›  全部回复第 1 页 / 共 1 页
回复总数  4
40 天前
回复了 superhot 创建的主题 程序员 请教 Java OOM 及 JVM 相关的问题
1.内存使用率 93%是否正常?
在生产环境中,93%的内存使用率确实偏高。理想情况下,应该保持一定的空闲内存以应对突发的负载增加。通常建议将内存使用率控制在 70-80%左右。高内存使用率可能导致系统性能下降,并增加 OOM 风险。

2.JVM Heap 大小建议
根据提供的信息,你的 EC2 实例有 4GB 内存,当前 JVM 堆大小设置为 2847MB 。考虑到操作系统和其他服务也需要内存,这个设置已经很激进了。建议稍微减小堆大小,例如设置为 2560MB (-Xmx2560m )。这样可以为操作系统和其他进程留出更多空间。


3.JVM 非堆内存使用:
JVM 非堆内存( Metaspace 、CodeCache 、DirectByteBuffers 等)的使用量因应用程序而异。一般来说,这些区域可能占用 200MB-1GB 左右的内存。
判断依据:
- 使用 jconsole 或 jstat 等工具监控实际使用情况
- 分析堆转储( heap dump )文件
- 查看 hs_err_pid 日志中的内存使用信息

4.分析 OOM 的可能情况:
从你提供的 hs_err_pid 日志中,可以看到以下关键信息:
```
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 16384 bytes for committing reserved memory.
```

这表明 JVM 无法为本机内存分配请求分配更多内存。这可能是由于以下原因造成的:

a. 物理内存耗尽
b. 操作系统限制(如 ulimit 设置)
c. 内存碎片化严重

分析建议:
- 使用 jconsole 或 VisualVM 等工具监控 JVM 内存使用情况
- 分析堆转储文件,查找内存泄漏
- 检查 GC 日志,了解垃圾回收情况
- 检查系统日志,查看是否有其他进程占用大量内存
- 考虑使用 JVM 参数如-XX:NativeMemoryTracking=summary 来跟踪本机内存使用

总结,有以下几条建议:
1.调整 JVM 参数:
```
-Xmx2560m -XX:MaxMetaspaceSize=256m -XX:ReservedCodeCacheSize=240m
```

2.启用详细 GC 日志:
```
-Xlog:gc*=info:file=/path/to/gc.log:time,uptime,level,tags:filecount=5,filesize=100m
```

3.使用 jstat 等工具定期监控 JVM 内存使用情况。
4.检查应用程序代码,寻找可能的内存泄漏。
5.优化数据库查询和缓存策略,减少内存压力。
6.考虑使用 JVM 参数如-XX:+HeapDumpOnOutOfMemoryError 来在 OOM 时自动生成堆转储。
2023-05-25 01:44:47 +08:00
回复了 wwxxx 创建的主题 MacBook Pro 大家的 mac 一般用什么键盘
@zhlxsh 我的 hhkb 也是有线的,用了 10 年了。怎么改蓝牙?求介绍或链接?
2023-02-02 00:14:52 +08:00
回复了 ultra 创建的主题 分享发现 阿里云盘开始限速了
同上。下载还行,能到 20m/秒,在线播放卡,还以为是没充值偷偷限速,结果充值后也卡。
2014-10-20 18:04:50 +08:00
回复了 Pixeller 创建的主题 macOS 昨晚升级 yosemite 后就再也连不上 vpn 了
我也是同样问题。不只如此,我有一只雷电接口的千兆网卡(Apple商店官方卖的那种),不管是dhcp还是manually,都无法连VPN。貌似只有Wi-Fi网卡在dhcp下才可以。PPTP以及L2TP都受此影响。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5431 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 08:08 · PVG 16:08 · LAX 00:08 · JFK 03:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.