linux性能速查-CPU使用率

本文介绍了如何通过/proc/stat文件中的数据计算Linux系统的CPU使用率,并提供了定位高CPU使用率进程的方法,包括使用pidstat、perftop等工具进行详细分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。

我们最常用的衡量CPU性能的指标就是CPU使用率,在linux系统中,使用节拍率维护CPU时间,比如如果节拍率为100,也就是每秒触发100次时间中断,在/proc/stat中可以看到CPU自开机以来的节拍数,如:

cpu  27191238 724 17538650 6555468157 13483194 0 372961 37615633 0 0
cpu0 3346390 39 1954616 820939905 662421 0 57314 4561521 0 0
cpu1 4765506 209 3089722 819027667 247121 0 25793 4435362 0 0
cpu2 3359440 71 2033369 809011451 11441557 0 32490 4539880 0 0
cpu3 5300105 66 3154309 815403991 500441 0 202204 5791673 0 0
cpu4 2200534 16 1539795 823364225 150664 0 15448 4429211 0 0
cpu5 3673752 223 2642467 820775853 175038 0 15088 4607002 0 0
cpu6 2401452 53 1626525 823274254 153443 0 12550 4620012 0 0
cpu7 2144055 44 1497844 823670807 152504 0 12071 4630968 0 0

各项具体含义有兴趣可自查,不过这不是重点。可以采用这种方式计算CPU使用率:

CPU使用率=1-CPU空闲时间/CPU总时间

但是如果以/proc/stat中的数据代入计算意义不大,因为计算出来的是自开机以来的平均值,没有参考意义。所以:

性能工具,大多取一段时间间隔来计算平均值,这样能够较为准确的衡量CPU使用率。

CPU使用率我们可以通过pidstat top等工具定位具体的进程,要定位具体的调用函数库可采用:

perf top -g -p 进程ID //-g开启调用链分析

有的时候CPU使用率在用户态下非常高,但是查看具体的进程却没有CPU使用很高的进程,可能是进程在崩溃重启,或者大量瞬时调用,导致 top pistat命令没有及时的捕捉到。那么,此时应该如何处理

1.从就绪队列长度,处于R状态的进程是哪些入手,使用pstree查看父子进程,找到调用的父进程。

2.使用perf record -g  perf report。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值