V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shanghai1943
V2EX  ›  问与答

Java 内存占用一直增长但是 dump 文件没有啥内容

  •  
  •   shanghai1943 · 2022-12-06 11:22:15 +08:00 · 702 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    机器配置:2c4g

    从 ecs 机器监控上看到内存占用最近几个星期缓慢增长到了差不多 70% 左右,打了 dump, 文件大概是 200m 不到,Java 应用重启后监控看到内存掉到了 40%

    命令行参数如下: -Xms2048M -Xmx2048M -Xmn512M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/logs/ -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:MaxTenuringThreshold=12 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/path/logs/gc-%t.log -XX:+UseGCLogFileRotation -XX:GCLogFileSize=512k -Djava.library.path=/path/bin

    想问下大概会是哪些原因呢?

    感谢。

    weiweiwitch
        1
    weiweiwitch  
       2022-12-06 11:44:49 +08:00   ❤️ 1
    Java 的 Xmx 只是设定 Java 堆内存的上限。但堆外,包括代码区,线程,GC ,直接内存等等,还会占用很多内存。所以你看到的占用了 70%是正常的。据说(我还没在生产环境遇到),使用 G1 收集器,极限情况下整个进程的内存占用会达到 Xmx 的 2 倍。
    所以,如果你的 Xmx 是 2G ,那么安全期间,你的机器的内存需要 4G 以上。
    weiweiwitch
        2
    weiweiwitch  
       2022-12-06 11:45:52 +08:00
    https://blog.csdn.net/w1014074794/article/details/113340344
    这篇文章会帮你理解一些内存上的东西。
    shanghai1943
        3
    shanghai1943  
    OP
       2022-12-06 11:49:12 +08:00
    @weiweiwitch #2 感谢。我先学习下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   939 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.