线上问题排查方法--笔记

高CPU占用

命令top:
在这里插入图片描述

  • (1)top…:系统运行时间
  • (2)Tasks…:系统进程相关
  • (3)Cpu…:cpu相关
  • (4)Mem:内存相关
  • (5)Swap:交换分区相关
  • (6)PID…:具体进程信息

(1)系统运行时间:
在这里插入图片描述
系统当前时间|系统到目前运行时间|当前系统登录的用户数量|负载均衡|1min|5min|15min

(2)系统进程相关
在这里插入图片描述
总进程数|正在运行进程数|挂起进程数|停止进程数|僵尸进程数

(3)cpu相关
在这里插入图片描述
用户空间占用CPU百分比|内核空间占用cpu时间|用户空间内改变过优先级的进程占用cpu百分比| 空闲cpu百分比|等待输入输出百分比|cpu服务于硬件终端所耗费cpu时间百分比|cpu服务于软件终端所耗费cpu时间百分比|steal time

(4)内存相关
在这里插入图片描述
物理总内存|已使用物理内存|空闲内存量|缓冲区内存总量

(5)交换分区相关
在这里插入图片描述
交换区总量|已使用交互区总量|空闲交换区总量|缓冲的交换区总量

(6)具体进程信息
在这里插入图片描述
进程iD|进程所有者|优先级|nice值|进程使用的虚拟内存总量|进程使用的未被换出的物理内存|共享内存大小|进程状态|进程占用的cpu百分比|进程使用cpu总时间|命令行

占用cpu高原因:计算密集型应用 / 死循环
命令ps aux|grep pid定位tomcat进程问题
命令ps -mp pid -o THREAD,tid,time 定位到具体的线程或代码

Cpu和耗时
命令:printf ”%x\n” tid 将线程id转为16进制格式
Printf ”%x\n” 15731

命令打印线程的堆栈信息:jstack pid|grep tid -A 30

  1. top命令:Linux命令。可以查看实时的CPU使用情况。也可以查看最近一段时间的CPU使用情况。
  2. PS命令:Linux命令。强大的进程状态监控命令。可以查看进程以及进程中线程的当前CPU使用情况。属于当前状态的采样数据。
  3. jstack:Java提供的命令。可以查看某个进程的当前线程栈运行情况。根据这个命令的输出可以定位某个进程的所有线程的当前运行状态、运行代码,以及是否死锁等等。
  4. pstack:Linux命令。可以查看某个进程的当前线程栈运行情况。

jstack

是java虚拟机自带的一种堆栈跟踪工具。
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。
线程的几种状态

  • NEW,未启动的。不会出现在Dump中。
  • RUNNABLE,在虚拟机内执行的。运行中状态,可能里面还能看到locked字样,表明它获得了某把锁。
  • BLOCKED,受阻塞并等待监视器锁。被某个锁(synchronizers)給block住了
  • WATING,无限期等待另一个线程执行特定操作。等待某个condition或monitor发生,一般停留在park(), wait(),sleep(),join() 等语句里。
  • TIMED_WATING,有时限的等待另一个线程的特定操作。和WAITING的区别是wait()等语句加上了时间限制 wait(timeout)。
  • TERMINATED,已退出的。

Java内存泄漏

Jstat命令:可以查看堆内存各部分使用量以及加载类的数量。
Jstat [-命令选项] [vmid][间隔时间/毫秒][查询次数]
通过jstat观察到业务系统fullgc比较频繁 最后oom
在这里插入图片描述

用jmap查看存活对象情况 jmap -histo:live pid 可以看到实例数量
在这里插入图片描述

定位到代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值