zoukankan      html  css  js  c++  java
  • linux服务器负载问题排查

      首先查看进程中cpu的使用率和内存使用情况,命令:top

    top -H -p <pid> :查看进程的线程使用情况

    使用命令printf "%x
    " 69888把线程pid转换成16进制数,得到:110a5。

    使用jstack 69892 | grep -20 11104 命令查询该线程阻塞的地方。
    使用jstack [-l] pid > xxx.log将所有线程信息输入到指定文件中

    1)如果程序正常运行:使用jstack [-l] pid > xxx.log将所有线程信息输入到指定文件中 
    这里写图片描述

    2)如果程序无响应:使用 jstack -F [-m] [-l] pid >xxx.log强制打印栈信息 
    这里写图片描述

     

    jstack解决CPU过高的问题

    第一步,找到占用cpu最高的一个线程
    方法一:top -p [pid]
    方法二:ps -mo spid,lwp,stime,time,%cpu -p [pid]
    方法三:直接top,然后shift+h
    第二步,将其转化成16进制。假使我们得到的线程号为n,接下来将它转成16进制,记为spid
    方法一:echo "obase=64;n"|bc
    方法二:printf 0x%x n
    下一步,执行jstack -l pid| grep spid -A 100 打印后面100行分析问题



  • 相关阅读:
    构造与析构的次序
    为什么析构函数常声明为虚函数
    偏移数组的二分查找
    字符串循环右移N位
    const 补充
    对类 sizeof
    指针与引用
    python小练习
    初学数据挖掘——相似性度量(一)
    每天进步一点点(二)
  • 原文地址:https://www.cnblogs.com/kkz-org/p/9982195.html
Copyright © 2011-2022 走看看