线上常见问题排查汇总

本文汇总了线上系统常见的问题及其定位方法,包括CPU利用率高、load高、FullGC频繁、线程池满和NoSuchMethodException等。通过jstat、jstack、vmstat等命令进行问题排查,同时介绍了线程池原理和常用命令如tail、grep等,为线上问题的快速解决提供了参考。
摘要由CSDN通过智能技术生成

**

一 线上常见问题定位

**
常见问题 1:CPU 利用率高
CPU 使用率是衡量系统繁忙程度的重要指标,一般情况下单纯的 CPU 高并没有问题,它代表系统正在不断的处理我们的任务,但是如果 CPU 过高,导致任务处理不过来,从而引起 load 高,这个是非常危险需要关注的。 CPU 使用率的安全值没有一个标准值,取决于你的系统是计算密集型还是 IO 密集型,一般计算密集型应用 CPU 使用率偏高 load 偏低,IO 密集型相反。

问题原因及定位:

1 频繁 FullGC/YongGC

  • 查看 gc 日志
  • jstat -gcutil pid 查看内存使用和 gc 情况

2 代码消耗,如死循环,md5 等内存态操作

jstack 查找

  • ps -ef | grep java 找到 Java 进程 id
  • top -Hp pid 找到使用 CPU 最高的线程
  • printf ‘0x%x’ tid 线程 id 转化 16 进制
  • jstack pid | grep tid 找到线程堆栈

ps:输入“1”可查看每个 CPU 的情况

常见问题 2:load 高
load 指单位时间内活跃进程数,包含运行态(runnable 和 running)和不可中断态( IO、内核态锁)。关键字是运行态和不可中断态,运行态可以联想到 Java 线程的 6 种状态,如下,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值