zoukankan      html  css  js  c++  java
  • Java线上应用故障排查

    线上故障主要2种: CPU利用率很高, 内存占用率很大

    一、CPU利用率很高

    1. top查询那个进程CPU使用率高

    2. 显示进程列表

    ps -mp pid -o THREAD,tid,time

    找到了耗时最高的线程28802,占用CPU时间快两个小时了!

    其次将需要的线程ID转换为16进制格式:

    printf "%x " tid

    2

    最后打印线程的堆栈信息:

    jstack pid |grep tid -A 30

    3

    从Thread dump日志中可以找到哪行代码造成CPU使用率高 

    二、内存占用率很大

    1. top命令查找那个进程内存占用率大

    2. 使用jmap命令获取内存dump文件

    jmap命令有下面几种常用的用法:

    •jmap [pid]

    •jmap -histo:live [pid] >a.log

    •jmap -dump:live,format=b,file=xxx.xxx [pid]

    用得最多是后面两个。其中,jmap -histo:live [pid] 可以查看当前Java进程创建的活跃对象数目和占用内存大小。

    jmap -dump:live,format=b,file=xxx.xxx [pid] 则可以将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析。

    MAT分析内存参考:

    http://blog.csdn.net/rachel_luo/article/details/8992461

    http://www.blogjava.net/hankchen/archive/2012/03/21/372389.html

  • 相关阅读:
    通讯技术
    (1)sqlserver2017安装
    c# api身份验证和授权
    ()centos7 安装python36
    python 包管理
    ()centos7 安装mysql8.0
    [bzoj1095][ZJOI2007]Hide 捉迷藏 点分树,动态点分治
    bzoj 3544 [ONTAK2010]Creative Accounting 贪心
    BZOJ4300 绝世好题 dp
    bzoj 4295 [PA2015]Hazard 贪心,暴力
  • 原文地址:https://www.cnblogs.com/jsnr-tdyd/p/7801171.html
Copyright © 2011-2022 走看看