写点什么

Windows 下 Tomcat 内存占用过高问题跟踪 (jmap 的使用)

作者:源字节1号
  • 2022 年 7 月 13 日
  • 本文字数:486 字

    阅读完需:约 2 分钟

Windows下Tomcat内存占用过高问题跟踪(jmap 的使用)

一、问题描述

  Tomcat 下面部署很多个 java 项目的 war 包,tomcat 启动一段时间后,发现 cpu 占用过高,整个界面卡死!

二、通过 tasklist 命令查看 java 进程下的线程

三、通过 jstack 把进程下所以的 Java 线程栈的内容打印出文本中

四、引出 jmap

使用 jstack 我们能够生成虚拟机当前时刻的线程快照,包含虚拟机中每一个线程正在执行的方法堆栈的集合,用于定位线程出现长时间停顿的原因,如死锁、死循环、外部资源长时间等待等。但是有时候我们需要观察到内存对象实例,此时我们可以使用 jmap 命令。

四、jmap 的作用

Jmap 可以用来查看内存信息,实例个数以及占用内存大小.

jmap -histo[:live] 打印每个 class 的实例数目,内存占用,类全名信息. VM 的内部类名字开头会加上前缀”*”. 如果子参数加上 live 后,只统计活的对象数量.

五、jmap 的使用

1、堆内存 dump 到指定目录,jmap -dump:b,file=project.hprof pid

2、dump 生成的文件可以用 jvisualvm 命令工具导入该 dump 文件分析: 打开 jdk 的 bin 目录的 jvisualvm 工具,选择文件,再选择装入,并选中对应的文件类型,即可进行导入文件,分析内存对象。


如若转载,请注明出处:开源字节   https://sourcebyte.cn/article/188.html

用户头像

源字节1号

关注

一个着迷于技术又喜欢不断折腾的技术活跃者 2022.03.09 加入

一个着迷于技术又喜欢不断折腾的技术活跃者。喜欢并热爱编程,执着于努力之后所带来的美好生活!

评论

发布
暂无评论
Windows下Tomcat内存占用过高问题跟踪(jmap 的使用)_软件开发_源字节1号_InfoQ写作社区