
dump使用说明
为了在我们分析某个进程时不让它跳来跳去,我们可以使用top -p pid 命令显示我们想要的某一进程的使用情况,如图中top -p 8731:
将heap.bin文件通过远程连接工具拷贝到window下,利用命令java -jar -Xmx3000m ha456.jar(在你的ha456的jar包的路径下使用该命令),启动工具,为了使用方便,我们可以将改命写到文本中,然后改变后缀名为bat,编程bat文件,每次启动点击即可,然后点击左上角的File,打开heap.bin即可得到相关的信息:
可以看到8748线程占用的资源比较过,接下通过命令
发布日期:2021-05-06 20:00:17
浏览次数:22
分类:精选文章
本文共 1527 字,大约阅读时间需要 5 分钟。
dump使用说明
前言
dump经常用于分析JVM的内存、CPU的占用情况,JDK也有自带的可视化工具如Java visual,但由于我使用的是阿里云的Linux服务器,没有界面,所以日常的运维都是在window下通过远程连接,在Linux输出日志,拷贝到window下,借助IBM的ha456.jar工具分析其日志。
关于ha456.jar的下载,,拉到最下方,点击下载即可。
内存dump
dump在分析Java程序的使用情况时,大致分为两个模块,即内存dump和线程dump。通过内存dump进行分析,找出内存溢出或长时间使用内存很高的程序。
因为这里分析的是\Java程序,所以我们需要先列出Java有哪些进行在运行~直接输入jsp命令(配置好JDK的环境变量),可以看到当前Java运行的进程有Bootstrap启动类加载器和Jps命令。:

如果想进行更详细的分析,我们可以借助我们前言说的工具ha456.jar,首先在Linux中以二进制的形式输出信息,这里要注意一下,64位和32位,在输出时命令有所不同,32位没有-J-d64,这里,我们是64位的系统,所以需要加,该命令输出信息到heap.bin文件中:


这里顺便记录一下JVM调优所需要的几个参数信息:
- -Xms 为jvm启动时分配的内存,比如-Xms200m,表示分配200M
- -Xmx 为jvm运行过程中分配的最大内存,比如-Xms500m,表示jvm进程最多只能够占用500M内存
- -Xss 为jvm启动的每个线程分配的内存大小,默认JDK1.4中是256K,JDK1.5+中是1M
线程dump
如果发现某个进程的CPU使用率很高,我们可以通过dump定位具体哪个线程在做哪个工作占用了过多的资源。 线程dump首先通过命令可以查看该进程下各个线程的cpu使用情况: top -Hp pid

jstack 8731
找到该进行下的各个线程的堆栈状态,在它生成的信息中,每个线程都有一个nid,表示每个线程号的16进制,像这里的8748转为16进制后就是222c,用16进制表示就是0x222c,如图所示: - RUNNABLE,线程处于执行中
- BLOCKED,线程被阻塞
- WAITING,线程正在等待
参考资料
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月27日 21时10分16秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
spring启动错误:Could not resolve placeholder
2021-05-08
日志写入xml上传ftp遇到的问题
2021-05-08
下载任意版本vmware对应的vmware tools
2021-05-08
将 github 中他人的 仓库 导入 码云中,从而 加快下载速度的 方式
2021-05-08
Java 类加载的过程 加载、验证、准备、解析、初始化
2021-05-08
JavaWeb---实现JavaBean来接收参数、请求转发、域对象
2021-05-08
瀚高数据库中 java代码类型与bit对应(APP)
2021-05-08
选择性估算器绕过行安全策略漏洞
2021-05-08
PostgreSQL中的触发器
2021-05-08
对PostgreSQL数据库结构的宏观理解
2021-05-08
Postgresql 日期和时间类型
2021-05-08
xmin、xmax、cmin、cmax
2021-05-08
查询某表格上次进行vacuum的时间
2021-05-08
invalid byte sequence for encoding
2021-05-08
Highgo Database故障收集脚本
2021-05-08
failed to initialize the database
2021-05-08
invalid byte sequence for encoding
2021-05-08
银河麒麟系统配置apt网络源
2021-05-08
第七周 4.12-4.18
2021-05-08
程序设计入门14 结构体
2021-05-08