美文网首页
线上环境JVM问题排查常用指令

线上环境JVM问题排查常用指令

作者: 穿着帆布鞋的小花猫 | 来源:发表于2018-07-28 20:35 被阅读0次

线上和测试环境的JVM一般运行在linux服务器上,没有界面,遇到问题时需要用指令工具进行排查。这方面的学问博大精深,而且实战重于理论,这篇文章仅仅当作日常问题排查的笔记,方便自己查阅,各方面的细节网上有很多文章进行过深入探讨。

1. Tomcat配置

排查问题时不一定只围绕程序日志、linux系统性能指令和JDK工具,有时候看看程序部署的tomcat配置文件,也许会有帮助。

把${TOMCAT_DIR}当作程序运行的tomcat在线上环境安装的根目录。那么下面有几个常用配置文件可以供排查问题参考:

(1)${TOMCAT_DIR}/bin/catalina.sh

这个文件涉及JVM(JAVA_OPTS)和tomcat(CATALINA_OPTS)的启动参数、端口号等。另外还可以设置tomcat所使用的jdk版本。

(2)${TOMCAT_DIR}/bin/setclasspath.sh

这个文件一般涉及tomcat所使用的jdk版本。

(3)${TOMCAT_DIR}/bin/setenv.sh

这个文件一般涉及JVM的启动参数。

(4)${TOMCAT_DIR}/conf/server.xml

tomcat的基本配置文件。排查时主要看端口号配置是否冲突、connector协议、java程序读取的位置等。

2. linux指令

linux指令在排查时主要用于查JVM的进程id(pid)和线程id(也是pid,linux没有线程概念,线程和进程在linux里面的id都用pid表示,线程id可以后续配合jstack或者jps查出)。此外还用于查看服务器本身CPU、内存等使用情况。

(1)查进程id

ps -ef|grep -v|grep XXX

或者

ps aux|grep XXX

(2)查看服务器内存使用情况

free -m

(3)查看服务各程序的CPU、内存等指标

top

3. JDK工具

jdk工具主要用于在获取JVM的进程id后,对JVM进行细粒度的分析,比如堆栈、堆内存、线程等情况。

(1)查看JVM的线程id

jps -lv pid:jps只能查当前用户启动的JVM线程

jstack -l pid

(2)查看JVM堆栈情况

jstack -l pid

(3)查看JVM的堆内存

jmap -heap/-histo pid:注意jmap要是用全路径,也就是服务器里java安装路径下bin/jmap。因为jmap的jdk版本最好要和分析对象的jdk一致,而服务器一般装了多个jdk版本,所以显示指定jmap的路径是个好习惯。

(4)查看gc情况:

jstat [-命令选项] [pid] [间隔时间/毫秒] [查询次数]

比如:

jstat -class/-compiler/-gc/-gccapacity/-gcnew/-gcnewcapacity/-gcold/-gcoldcapactiy/-gcutil pid

这个命令的组合有很多,可以具体参考其他文章。

相关文章

  • 线上环境JVM问题排查常用指令

    线上和测试环境的JVM一般运行在linux服务器上,没有界面,遇到问题时需要用指令工具进行排查。这方面的学问博大精...

  • 一次完整的JVM堆外内存泄漏故障排查记录

    前言 记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些JVM内存分配机制以及常用的JVM问题排查指...

  • JVM问题常用排查命令

    JVM问题常用排查命令 @Date 2017.05.23 JVM调优问题 CPU使用率与Load值偏大 : Thr...

  • 8、线上问题排查

    文章主要列出了常见的排查工具,也有部分线上问题案例; JVM 问题排查 JDK工具包 javap 反编译工具jav...

  • Java常用命令行工具

    常用的Java命令行工具的使用梳理,方便以后线上问题排查处理. 示例使用的虚拟机版本(JVM自带命令行工具在bin...

  • [转]Java线上问题排查思路及Linux常用问题分析命令学习文

    Java线上问题排查思路及Linux常用问题分析命令学习 前言 之前线上有过一两次OOM的问题,但是每次定位问题都...

  • 排查CPU利用率高的线程

    在日常工作中,我们有时候需要排查线上问题,找出系统中CPU利用率最高的线程.当然,我们这里默认被排查的线程在JVM...

  • JVM 问题排查

    CPU使用率高 找出使用率高的进程的pid 找出使用率高的线程tpid 查看使用率高的线程当前在干什么 GC问题 ...

  • JVM问题排查

    一、线上CPU飚高、死锁等排查基本步骤: 1、top 记录CPU使用率最高的JAVA进程PID 2、top -H...

  • JVM问题排查

    一、JVM的参数类型 1.Boolean类型 格式:-XX:[+-]表示启用或者禁用name属性。比如...

网友评论

      本文标题:线上环境JVM问题排查常用指令

      本文链接:https://www.haomeiwen.com/subject/dulamftx.html