找出占用高的进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出占用高的进程相关的知识,希望对你有一定的参考价值。

1.找出僵尸进程
ps -A -ostat,ppid,pid,cmd | grep -e ‘^[Zz]‘

-A 参数列出所有进程
-o 自定义输出字段,我们设定显示字段为stat(状态),ppid(父进程pid),pid(进程pid),cmd(命令行)这四个参数
因为状态为 z 或者 Z的进程为僵尸进程,所以我们使用grep 抓取stat 状态为zZ进程;

运行后,在此运行ps -A -ostat,ppid,pid,cmd | grep -e ‘^[Zz]‘ 来确认是否将僵尸进程杀死;
如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面父进程pid 为12334,那么我们就运行 kill -HUP 12334 来解决问题

2.找出cup占用高的进程
ps -aux --sort -pcpu | less
-pcpu 可以显示出进程绝对路径,方便找出×××程序运行的路径
查看是否有异常进程技术分享图片

ll /proc/28311/exe
查看这个程序调用的服务
技术分享图片

3.查看某个进程线程的cpu占用率
ps -mp 30180 -o THREAD,tid,time

4.查看某个命令是不是被篡改了
在这个命令调用的情况下 ps aux|grep ps
如果发现这个命令路径不对了,则被篡改了

5.top常用使用
top -b -n 2 > /root/pan_work/top.txt 输出两次top信息
top -d 5 5秒输出一次

以上是关于找出占用高的进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux 某个进程中占用CPU高的线程

JVM调优之jstack找出最耗cpu的线程并定位代码

Java进程CPU占用高导致的网页请求超时的故障排查

线上CPU 占用300%多-故障解决

JVM排查问题实战

Linux下分析某个进程CPU占用率高的原因