资讯专栏INFORMATION COLUMN

JVM诊断之查看运行参数

shengguo / 2870人阅读

摘要:在系统运行过程中其他人也许动态调整了系统参数。如何实时查看正在运行的的参数呢解决方案可以采用来查看正在运行的的参数。从开始引入的一个诊断命令行工具,可以向运行中的发送诊断命令。

问题描述
  

为了分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。在系统运行过程中其他人也许动态调整了系统参数。 如何实时查看正在运行的JVM的参数呢?

解决方案
  

可以采用jcmd来查看正在运行的JVM的参数。jcmd从JDK 7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令。

查看JVM进程的PID
    $ jcmd -l
      27940 sun.tools.jcmd.JCmd -l
      24684 org.codehaus.plexus.classworlds.launcher.Launcher -Prun
      23839 com.intellij.idea.Main
      23951 org.jetbrains.idea.maven.server.RemoteMavenServer
查看进程24684的参数
    $ jcmd 24684 VM.flags
      24684:
      -XX:InitialHeapSize=98566144 -XX:MaxHeapSize=1547698176 
      -XX:MaxNewSize=515899392 -XX:MinHeapDeltaBytes=524288 
      -XX:NewSize=1572864 -XX:OldSize=96993280 
      -XX:+UseCompressedClassPointers 
      -XX:+UseCompressedOops -XX:+UseParallelGC 

堆大小设置,垃圾回收算法等一目了然。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66146.html

相关文章

  • 爱上Java诊断利器Arthas

    摘要:是什么摘自的介绍大意为是阿里开源的一个诊断工具,可以帮助开发人员在不修改代码或重启服务器的情况下快速定位线上问题。听起来确实是我们的程序员的一大福利。参考资料使用手册 1. Arthas是什么? 摘自Arthas的Github介绍: Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas allows deve...

    Hancock_Xu 评论0 收藏0
  • 推荐一款阿里开源的 Java 诊断工具,好用到爆!

    摘要:是什么鬼是一款阿里巴巴开源的线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。诊断使用的是命令行交互模式,支持,操作系统,命令还支持使用键对各种信息的自动补全,诊断起来非常利索。显示当前系统的实时数据面板,按即可退出。 Arthas是什么鬼? Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。 Arthas诊断使用的是...

    Rango 评论0 收藏0
  • Arthas使用指南

    摘要:注意这个统计也会产生一定的开销这个接口本身开销比较大,因此会看到的线程占用一定的百分比,为了降低统计自身的开销带来的影响,可以把采样间隔拉长一些,比如毫秒。 Arthas 能为你做什么? 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在预发 debug 一下,难道只能通过加...

    darkerXi 评论0 收藏0
  • greys在线问题诊断

    摘要:目标群体有时候突然一个问题反馈上来,需要入参才能完成定位,但恰恰没有任何日志。通过指定渲染路径,并可记录下路径中所有方法的入参返值与命令联动。使用和介绍具体查看 目标群体 有时候突然一个问题反馈上来,需要入参才能完成定位,但恰恰没有任何日志。回去加上重新部署,一杯咖啡时间过去了,是不是很崩溃? 当你经过反复这样几次折腾之后变得聪明了,在自己的代码的所有入参和出参地方都加上debug日...

    frolc 评论0 收藏0
  • 记一次,jvm 内存溢出

    摘要:什么是内存溢出内存溢出是指,程序创建对象需要内存,但是却没有内存可用了,内存就溢出了。使用命令查看个数输入后,按诊断是文件在服务端没读取到,还是内存溢出。无耐,阿里云学生机配置不好,只能稍微修改一点,再将文件切割为小文件上传了参数请参考 1、什么是内存泄漏内存泄漏是指,有未被释放的java对象,一直停留在内存中。GCRoot 无法追踪到此对象,导致此对象无法被回收。 2、什么是内存溢出...

    tainzhi 评论0 收藏0

发表评论

0条评论

shengguo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<