jieye の 数字花园

Search

Search IconIcon to open search

系统监控异常处理

Last updated Unknown

# 系统监控异常处理

写起来思路很清晰,但实际上整个过程花费了大半天的时间,其实排查的过程中,有很多关键点没有抓到,有很多现象,是可以凭经验条件反射的推断出原因的:

  1. 看到 cpu 使用率上涨,用 jstack 看使用 cpu 的线程,以及该线程在跑什么代码。
  2. 找到是 gc 线程,然后看 gc 曲线是否正常。
  3. 看堆内存曲线,正常的曲线是锯齿形的,如果不是,一次 full GC 之后内存没有明显下降,那基本可以推断发生内存泄漏了。
  4. 怀疑是内存泄漏的问题,可以跑 jmap,然后拉到 MAT 分析。
  5. 第四步比较耗时的话,可以同时跑这个命令:jmap -histo pid。看看有没有线索。

jvm 的一些工具:jstack、jmap、jstat、jhat。包括可视化工具:MAT、jvisualvm