zoukankan      html  css  js  c++  java
  • jstack

    java程序过高,使用jstack排查问题的流程

    jstack是jdk自带的命令,安装jdk并配置环境变量就可以使用

    故障现象

    程序运行缓慢,网页卡顿,使用top命令查看服务器情况,发现CPU战胜率过高。

    定位问题进程

    使用top命令查看资源占用情况,发现java程序占用大量CPU资源,获取其pid信息,并定位问题线程

    使用ps -mp pid -o THREAD,tid,time命令查看该进程的线程情况,发现该进程的多个线程占用率很高

    查看问题线程堆栈

    挑选CPU高的TID值的线程,查看该线程的堆栈情况,先将线程id转为16进制,使用printf "%x " tid 命令进行转换

    ~]# print "%x
    " xxxx
    xxxx
    

    j在使用jstack命令打印线程堆栈信息,命令格式:jstack pid | grep tid -A 30

    注意:
    需要用起服务对应的pid的用户来调用jstack,sudo -u tomcat jstack pid | grep tid -A 30

    内存问题定位

    使用jstat -gcutil命令查看进程的内存情况

    ~] jstat -gcutil pid 2000 10
    

    分析堆栈

    jstack pid > jsatck.out
    

    然后将输出的结果交给开发去分析问题原因

  • 相关阅读:
    初识SpringBoot
    Dubbo案例SSM整合
    Dubbo
    Spring错题整合
    SSM整合
    SpringMVC数据校验
    SpringMVC拦截器
    SpringMVC文件上传
    SpringMVC异常
    字符串
  • 原文地址:https://www.cnblogs.com/dance-walter/p/8658240.html
Copyright © 2011-2022 走看看