jvm 常用内存分析命令

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt121

 

// 打印出内存占用情况

./jstat -gcutil 12564 1000 5

 

// 打印出内存占用情况

./jmap -heap 12564

 

// 打印出jvm中各个资源占用情况,比较合适细节查找

./jmap -histo 12564 | ./jmap -histo:live 12564 > /home/xxx/jvmdump.txt

 

// 打印出整个dump的信息(不建议,太复杂)

./jmap -dump:format=b,file=/home/xxx/jvmalldump.txt 12564

### JVM常用命令及功能介绍 #### 1. **jps (Java Virtual Machine Process Status Tool)** `jps` 是一种用于显示当前系统中所有 Java 进程的状态的工具。它可以帮助开发者快速定位正在运行的 Java 应用程序以及其对应的进程 ID(PID)。通过 `jps -v` 参数,还可以进一步查看启动该应用程序时所使用的 JVM 参数和选项[^1]。 ```bash $ jps -lv ``` 上述命令将列出所有 Java 进程及其完整的类路径和传递给 JVM 的参数。 --- #### 2. **jinfo (Java Configuration Information)** `jinfo` 工具允许用户动态获取并调整正在运行的 Java 虚拟机实例的相关配置信息。这包括但不限于 JVM 启动时指定的各种参数设置。此外,在某些特定场景下,也可以利用此工具来修改部分 JVM 配置项[^2]^,^[^4]。 例如,要查询某个 PID 对应的 JVM 所加载的所有参数: ```bash $ jinfo -flags <pid> ``` 如果需要生成堆转储文件,则可以通过如下方式实现;不过需要注意的是,这一操作可能带来一定的性能开销,尤其是在大内存环境中更需谨慎对待: ```bash $ jmap -dump:live,format=b,file=heap.bin <pid> ``` 尽管这里提到的是 `jmap`, 它同样属于 JDK 自带的一系列诊断工具之一,与本节讨论的内容密切相关。 --- #### 3. **jstat (Java Virtual Machine Statistics Monitoring Tool)** 作为一款强大的监控利器,`jstat` 提供了关于 JVM 性能统计方面的详尽数据,涵盖了诸如垃圾回收行为、方法区使用状况等多个维度的信息展示服务[^3]. 用户能够依据实际需求选取不同的观测角度来进行深入分析: - `-gcutil`: 显示 GC 活动概览; - `-gccapacity`: 展现各代对象存储区域容量详情; - `-class`: 关注类加载器的工作表现等等... 下面给出一段简单的脚本例子以便更好地理解如何运用这些选项完成周期性的采样工作: ```bash #!/bin/bash for i in {1..10}; do echo "Sample $i" jstat -gcutil $(pgrep java) 1000 1 | awk '{print strftime("%Y-%m-%d %H:%M:%S"), $0}' done ``` 以上代码片段每隔一秒打印一次目标进程中有关垃圾收集利用率的变化趋势记录下来,并附加时间戳便于后续追踪审查之便. --- #### 4. **其他重要说明** 值得注意的是,尽管目前市面上存在众多针对 JVM 调优设计得更加友好的图形界面型产品可供选择,但从原理层面出发掌握好基础命令行交互手段依旧十分必要。因为它们构成了更高层次解决方案的基础构建模块. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值