linux中rand函数cpu占用率高,Linux性能优化--CPU到100%了该怎么办(下)-搜云库

除了知道是什么进程导致CPU使用率到100%,我们还想知道是什么方法导致的CPU跑满,应该怎么做呢?

下面就需要使用到分析命令perf,该命令需要安装,在Centos下用 yum install perf来安装。

使用perf来查看,执行perf top

输出结果中,第一行包含三个数据,分别是采样数(Samples)、事件类型(event)和事件总数量(Event count)。比如这个例子中,perf 总共采集了 59K 个 CPU 时钟事件,而总事件数则为 11161651581。

再往下看是一个表格式样的数据,每一行包含四列,分别是:

第一列 Overhead ,是该符号的性能事件在所有采样中的比例,用百分比来表示。

第二列 Shared ,是该函数或指令所在的动态共享对象(Dynamic Shared Object),如内核、进程名、动态链接库名、内核模块名等。

第三列 Object ,是动态共享对象的类型。比如 [.] 表示用户空间的可执行程序、或者动态链接库,而 [k] 则表示内核空间。

最后一列 Symbol 是符号名,也就是函数名。当函数名未知时,用十六进制的地址来表示。

上述结果中,可以看到__random_r函数占了36.37%

通过top我们可以定位是stress造成了CPU跑满,通过perf top可以看到是random这个方法占用百分比较高,由此可以理解为是stress命令中调用了random导致的CPU占用率达到100%,我们可以用perf命令来验证一下,执行perf top -g -p 9904

可以看到结果前面有“+”号,用方向键移到该结果上点回车,可以打开。

这里我们对pid为9904的进程进行了分析,看到在该进程中,random方法占用了37%左右,就确定了使用率飙升的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值