系统应用问题排查好用的命令

一、问题排查思路

系统页面出现卡顿、无响应,大致问题排查思路

  1. 首先检查网络问题。通过常用的ping或telnet命令进行检查

  1. 检查系统日志:前台通过F12进入调试,后台检查应用日志

  1. 检查系统应用资源使用情况,包括CPU、内存、IO、磁盘等

二、CPU过高排查步骤

本文将重点记录一次CPU飙高问题的追踪

  1. 查找进程PID:通过top命令可以查看到资源占用情况,并发现CPU飙高,在top命令下,按1会直接进入到多核CPU详情占用情况显示,如下所示

top
系统应用问题排查好用的命令_第1张图片
  1. CPU占用高的线程TID:通过以上top命令可定位是否是JAVA应用引用的CPU占用高的问题(本图为16C)。如果确认是JAVA应用导致,我们最终需要找到是程序中哪些调用逻辑引起的,那我们接着需要继续跟踪是哪个线程引用起的,可用 以下命令找到应用线程信息,并找到占用CPU过高的线程ID

top -Hp PID
系统应用问题排查好用的命令_第2张图片

  1. 把TID转成十六进制:通过jstack命令查看时需要用到线程号的十六进制信息,所以我们需要用以下命令将线程ID转成十六进制

printf "%x\n" tid

  1. 查看线程堆栈信息

jstack pid|grep tid -A 30
系统应用问题排查好用的命令_第3张图片

根据以上信息可以具体分析程序逻辑所引用的CPU占用过高

三、jvm常用排查命令

查看当前运行的JAVA进程:jps -l
查看当前JVM配置信息:jinfo -flags pid 
查看堆内存的设置及使用情况:jmap -heap pid
查看堆内存的存活的类信息,包括类名、对象数量、对象占用大小:jmap -histo :live pid 
查看类加载的数量和空间占用:jstat -class pid
  • jps -l

  • jinfo -flags 26462

  • jmap -heap 26462

系统应用问题排查好用的命令_第4张图片
  • jstat -class 26462

  • jstat -gc 26462 2s 5

四、JVM参数调整

待续...

你可能感兴趣的:(技术相关,java)