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

一个有关 JVM 内存占用的小白问题

  •  
  •   lander · 2020-01-15 16:21:35 +08:00 · 1265 次点击
    这是一个创建于 1535 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在客户现场实施某安全软件的管理服务器,底层用的是 Apache+Java+Tomcat。
    服务器分配了 16GB 内存,装好之后运行了一段时间,最近收到告警说 JVM free memory 小于 30%(阈值是 30%):
    JVM max memory: 8096MB
    JVM total memory: 1072MB
    JVM used memory: 890MB
    JVM free memory: 182MB
    JVM free memory 百分比:17%
    JVM used memory 百分比:83%

    比较疑惑的是为啥 JVM total memory 为啥是 1072 ?这个 JVM total memory 是指 JVM heap memory + non-heap memory 吗?
    提前谢过
    4 条回复    2020-01-15 17:55:36 +08:00
    falsemask
        1
    falsemask  
       2020-01-15 16:40:31 +08:00
    从你数字来看 1072=890+182 吧。不知道你这个是怎么统计的,可以把 jvm 参数贴出来,或者 jmap -heap pid 看一下
    Raymon111111
        2
    Raymon111111  
       2020-01-15 16:50:58 +08:00
    敲一下 jstat -gc <pid> 1000 看看输出
    lander
        3
    lander  
    OP
       2020-01-15 17:10:06 +08:00
    @Raymon111111 @falsemask
    是这个管理平台自带的一个功能自动检测的结果。
    另外这是基于 Windows 的平台,我找了下好像只有 jconsole.bat ,没有两位所说的 jstat 和 jmap 工具。。而且 jconsole 默认禁用了远程管理,需要修改 management.properties 文件╮(╯▽╰)╭然后重启 tomcat,我找时间申请个变更再发给两位 jconsole 里的运行结果。
    如果有更好的办法请再随时沟通。
    falsemask
        4
    falsemask  
       2020-01-15 17:55:36 +08:00
    @lander jstat 和 jmap 都是 jdk 里面的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2641 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:22 · PVG 23:22 · LAX 08:22 · JFK 11:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.