美文网首页
线上CPU100%的问题处理

线上CPU100%的问题处理

作者: 不是明天 | 来源:发表于2019-03-25 14:42 被阅读0次

    上次出现线上CPU100%的情况是论坛发帖一个正则表达式引起的,当时各项目耦合比较紧密,导致大量网站瘫痪。多次重启问题依然存在。后来通过查看代码以及运维操作解决的该问题。记录一下基本的排查过程,帮助以后能快速解决该类问题。

    1. 查看cpu和内存的使用情况

    top

    image.png

    2.找到进程中的占cpu最高和最耗时的线程

    ps -mp -pid -o Thread,tid,time

    image.png

    3. 将TID转换为16进制

    printf "%x\n" tid

    image.png

    4.使用jstack 命令找到线程堆栈信息

    [root@VM_0_17_centos ~]# jstack 26427 |grep 673d -A 30

    image.png

    注:上图中的tid指java线程id,nid指native线程id。

    总结:

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

    参考:https://www.cnblogs.com/lishijia/p/5549980.html

    相关文章

      网友评论

          本文标题:线上CPU100%的问题处理

          本文链接:https://www.haomeiwen.com/subject/eqrqmqtx.html