Linux进程CPU排序,解决方法:Linux下某个进程的CPU使用率高的分析方法

Linux下某个进程的CPU使用率高的分析方法

使用top命令找出消耗大量资源的线程ID,并使用strace命令查看该线程的所有系统调用

1.使用top命令查找可疑进程的PID

从上面的命令可以看出,java进程的CPU利用率一直保持在100%,这是稳定的。查找PID 1114

2.查找消耗最多资源的线程

top -H -p 1114您可以不执行第一步而直接执行top -H命令,并且可以查看消耗最多资源的线程

3.查看此线程的所有系统调用

strace -p 1228或strace-cp 1228

通过这三个步骤,您基本上可以找出导致java进程占用如此高CPU资源的原因。

要获取在Linux下占用CPU资源最多的10个进程,可以使用以下命令组合:

ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head

要获取Linux下占用内存最多的10个进程,可以使用以下命令组合:

ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head

命令组合分析(对于CPU,MEN相同):

ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head

命令组合实际上是以下两个命令:

ps aux | head -1

ps aux | grep -v PID | sort -rn -k +3 | head

您可以使用以下命令检查使用最多内存的10个进程

查看CPU使用率最高的进程

ed1d648b705467932cb47b28d830ae9f.png

psaux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head

或顶部(然后按M,请注意该字母为大写)

查看内存使用率最高的进程

ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head

或按顶部(然后按P,请注意该字母应大写)

命令组合实际上是以下两个命令:

ps aux | head -1

ps aux | grep -v PID | sort -rn -k +3 | head

第一句话主要是为了获得标题(USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND)。

772d6eec8552a3f665aa8c1683d8ecf9.png

下一个grep -v PID将删除ps aux命令获得的标题,即grep不包含PID的三个字母的组合,然后对结果进行排序。

sort -rn -k +3此命令中-rn的r表示结果按相反顺序排序,n按数值排序,-k +3用于对第三列的内容进行排序,然后默认使用head Command获取前10行数据。 (其中|表示管道操作)

补充:内容说明

PID:进程ID

USER:流程所有者

PR:进程的优先级,优先级越小,将被执行的优先级越高

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。 S表示休眠,R表示运行,Z表示死状态,N表示进程的优先级值为负

%CPU:进程占用的CPU利用率

%MEM:进程使用的物理内存和总内存的百分比

TIME +:进程启动后占用的总CPU时间,即CPU使用时间的累积值。

命令:进程启动命令名称

,您可以使用以下命令检查使用最多内存的K个进程

方法1:

ps -aux | sort -k4nr | head -K

d2a3648421527266b2be983ea0481d7a.png

如果有10个进程,则K = 10,如果是最高的三个进程,则K = 3

说明:在ps -aux中(a表示所有进程,u表示执行该进程的userid-user id,x表示显示所有程序,未按终端区分)

ps -aux的输出格式如下:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 19352 1308 ? Ss Jul29 0:00 /sbin/init

root 2 0.0 0.0 0 0 ? S Jul29 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S Jul29 0:11 [migration/0]

在-k4nr排序中(k表示从其开始的位置,以下数字4是开始位置,如果不是结束位置,则默认为结尾; n表示数字排序,根据它的值; r表示代表反向,这里指的是反向比较结果,默认情况下输出是从小到大,在反向后输出是从大到小。在此示例中,您可以看到%MEM在第4个位置,并根据%MEM的值从最大到最小排序。

head -K(K表示行数,即输出前几个结果)

|是管道符号,它将查询结果引至下一步的下一步命令。

方法2:置顶(然后按M键,注意大小写)

二、您可以使用以下命令来检查使用CPU最多的K个进程

方法1:

ps -aux | sort -k3nr | head -K

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shoujiruanjian/article-340463-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值