精华内容
下载资源
问答
  • 流程执行命令:1.top 到pid 285552.ps aux|grep 28555 确定到是tomcat的进程3.显示线程列表 ps -mp 28555 -o THREAD,tid,time 到tid 288024. printf "%x\n" 28802 将线程id,tid进行16进制转换5.jstack pid |...

    流程执行命令:

    1.top  查到pid 28555

    2.ps aux|grep 28555 确定到是tomcat的进程

    3.显示线程列表 ps -mp 28555 -o THREAD,tid,time   查到tid 28802

    4. printf "%x\n" 28802 将线程id,tid进行16进制转换

    5.jstack pid |grep tid -A 30 显示堆栈信息 jstack 28555 |grep 28802 -A 30

    详细解释看下文:

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。

    以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。

    e7495dda85cbdfa938ee4c4781ff8b6c.png

    根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。

    通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题。但是,怎么定位到具体线程或者代码呢?

    首先显示线程列表:

    ps -mp pid -o THREAD,tid,time

    7ee2dbf3f722a0ba408e03625b0caa5b.png

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

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

    printf "%x\n" tid

    7857ca571da51b74b759ce831b451e39.png

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

    jstack pid |grep tid -A 30

    8e2fb4252a397e572db56306de626359.png

    找到出现问题的代码了!

    最后,总结下排查CPU故障的方法和技巧有哪些:

    1、top命令:Linux命令。可以查看实时的CPU使用情况。也可以查看最近一段时间的CPU使用情况。

    2、ps命令: Linux命令。强大的进程状态监控命令。可以查看进程以及进程中线程的当前CPU使用情况。属于当前状态的采样数据。

    3、jstack:  Java提供的命令。可以查看某个进程的当前线程栈运行情况。根据这个命令的输出可以定位某个进程的所有线程的当前运行状态、运行代码,以及是否死锁等等。

    4、pstack:Linux命令。可以查看某个进程的当前线程栈运行情况。

    展开全文
  • Linux查询cpu情况

    2020-06-03 16:33:21
    先进服务器,用top -c 命令找出当前进程的运行列表(cpu占用率从大到小) 显示Java进程 PID 为 2609 的java进程消耗最高 然后我们需要根据PID 查出CPU里面消耗最高的进程 使用命令 top -Hp 2609 找出这个进程下面...

    先进服务器,用top -c 命令找出当前进程的运行列表(cpu占用率从大到小)

    显示Java进程 PID 为 2609 的java进程消耗最高
    然后我们需要根据PID 查出CPU里面消耗最高的进程

    使用命令 top -Hp 2609 找出这个进程下面的线程,继续按P排序

     

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    参考:http://blog.csdn.net/u014738683/article/details/53914423

    1. 查找进程

    top 
    

    2. 查找线程

    top -H -p <pid>
    

    3. 查找java的堆栈信息

    # 将线程id转换成十六进制
    printf "%x\n" <tid>
    # 使用jstack查询线程的堆栈信息
    jstack <pid> | grep -a 线程id(十六进制)
    

    4. 其他

    strace -p 24167(tid)
    

    转载于:https://my.oschina.net/ironwill/blog/1557076

    展开全文
  • linux下有时候需要查看系统内存占用的情况,两个方法。 一个是用top 输入大写的M 可以查看到占用内存的进程PID,以及占用的百分比 PID是第一列,内存占用百分比是%MEM这一列 另外也可以通过下面的方法内存占用: ...

    linux下有时候需要查看系统内存占用的情况,两个方法。
    一个是用top
    输入大写的M
    可以查看到占用内存的进程PID,以及占用的百分比
    PID是第一列,内存占用百分比是%MEM这一列

    另外也可以通过下面的方法查内存占用:

    ps -aux | sort -nk4

    这个命令其实就相当于
    ps -aux|sort -n -k 4
    -k指定列数,-k 4意思就是指定第4列,就是内存那一列
    如果是cpu,就可以用-k 3
    -n 依照数值大小来排序

    我们可以取使用内存最多的前10个进程
    加了一个-r ,-r 是逆向排序:

    ps -aux | sort -nrk4 | head -n 10

    展开全文
  • 一、可以使用以下命令使用内存最多的10个进程 方法1: ps -aux | sort -k4nr | head -10 如果是最高的三个,10改为3即可 命令解释:  1. ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户...
  • 2、查询进程占用内存情况 参数说明: 字段 说明 VmPeak 进程所使用的虚拟内存的峰值 VmSize 进程当前使用的虚拟内存的大小 VmLck 已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘) ...
  • 一、查看线程级别的cpu占用情况 查询java pid top -c 查询java进程下,线程情况 # 方法一 ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu | grep PID # 方法二 ps -mp PID -o THREAD,tid,time # ...
  • * 功能:Linux CPU使用信息 */ public Map, ?> cpuinfo() { InputStreamReader inputs = null; BufferedReader buffer = null; Map, Object> map = new HashMap, Object>(); try { inputs = new ...
  • 想弄个脚本定时记录,linux 占用最高CPU 内存的进程。 生成友好阅读的日志,或者将到的信息追加到日志文件中也行。 然后放到crontab里去执行。 但是有个前提,不使用ps命令。 网上找了一堆,可以使用这个方式,...
  • ①获取占用 CPU 资源最多的 10 个进程: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head ②获取占用内存资源最多的 10 个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
  • 1.使用命令cat /proc/meminfo ...以下就是测量一个进程在运行的时候占用了多少个内存的验证方法: 内存空间比较大了,来验证一下: 此时引用一个spoon的内存调度看一下: 验证结果如下所示: ...
  • 如何处理MySQL经常出现CPU占用率达到99%情况说明:最近在自己购买的linux服务器上捣鼓了一个小项目,按理说不存在CPU占用率会达到100%的情况,但事实就是经常出现。然后,我第一反应是“卧槽,被人当矿机了?”,...
  • Linux ps sort head 命令的使用以及实操查询cpu内存占用大的进程ps命令说明sort命令说明head命令说明实操查找cpu使用率最高的前5个进程查找内存使用最高的前5个进程 ps命令说明 用法: ps [选项] 基础选项: -A, -e ...
  • CPU负载的查询分析,在Linux系统中经常用到,查看进程的常用命令如下所示。本文主要介绍 vmstat 和 top 。使用vmstat命令查看通过vmstat命令,从系统维度查看CPU资源的使用情况。命令格式类似如下,表示结果一秒刷新...
  • 输入:topPID:进程的ID...S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU:进程占用CPU的使用率%MEM:进程使用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间,即占用CP...
  • Linux kswapd0 进程CPU占用过高

    千次阅读 2019-10-08 04:48:20
    发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下。 swap分区的作用是当物理内存不足时,会将一部分硬盘当做虚拟内存来使用。 kswapd0 占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换...
  • 今天使用MobaXterml 连接上一台物联网的Linux服务器的使用,发现该服务器的CPU使用率一直在100%左右。使用top 命令发现Mysql占用了大量的CPU用数据库工具 Navicat premium 以 root 的身份连接数据库,执行查询语句:...
  • 查询内存占用: ps -aux | sort -k4nr | head -K 如果是10个进程,K=10,如果是最高的三个,K=3 说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来...
  • 首先第一步通过top指令检查cpu占用情况 在执行top指令后按【1】可以打开cpu列表,【shift+p】可以按照cpu排序 可以看到我们的Java进程id是2689 第二部通过指令获取Java进程下的线程信息 top -H -p 2689 第...
  • 为了快速解决问题直接重启mysql服务后,再sysql进程CPU使用率依旧高居不下。故障还没有解决,继续寻找原因。3.登陆mysql数据库,执行show processlist;查看当前正在执行的sql语句,发现几个表出现“sending data”...
  • 常见问题 : 一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。 解决办法 : mysql的配置my.ini文件中,有一项: wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时...
  • linux下查找java进程占用CPU过高原因1. 查找进程top查看进程占用资源情况明显看出java的两个进程22714,12406占用过高cpu.2.查找线程使用top -H -p <pid>查看线程占用情况3.查找java的堆栈信息将线程id转换成...
  • java 在linux占用cpu过高

    2020-07-03 12:05:09
    #java项目CPU占用过大 1.使用top命令查询进程ID在这里插入图 23910 2.再通过ps命令查看这个程序的线程信息,tid代码线程ID,time代表这个线程的已运行时间 ps -mp 23910 -o THREAD,tid,time | sort -rn | more 3.查询...
  • linux 查看内存和cpu占用比较多的进程 1.可以使用一下命令使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 102. 可以使用一下命令使用CPU最多的10个进程 ps -aux | sort -k3nr | head -...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 452
精华内容 180
关键字:

linux查cpu占用

linux 订阅