排查命令

Java开发必须掌握的线上问题排查命令

梦想的初衷 提交于 2019-12-01 11:07:32
作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志、异常堆栈、堆使用情况、GC情况、JVM参数情况、线程情况等。 给一个系统定位问题的时候,知识、经验是关键,数据是依据,工具是运用知识处理数据的手段。为了便于我们排查和解决问题,Sun公司为我们提供了一些常用命令。这些命令一般都是jdk/lib/tools.jar中类库的一层薄包装。随着JVM的安装一起被安装到机器中,在bin目录中。下面就来认识一下这些命令以及具体使用方式。文中涉及到的所有命令的详细信息可以参考 Java命令学习系列文章 jps 功能 显示当前所有java进程pid的命令。 常用指令 jps :显示当前用户的所有java进程的PID jps -v 3331 :显示虚拟机参数 jps -m 3331 :显示传递给main()函数的参数 jps -l 3331 :显示主类的全路径 详细介绍 jinfo 功能 实时查看和调整虚拟机参数,可以显示未被显示指定的参数的默认值( jps -v 则不能 )。 jdk8中已经不支持该命令。 常用指令