centos6的性能分析工具集合

本文介绍如何使用perf工具监测CentOS内核性能消耗,并利用gprof优化用户空间程序调用。通过具体案例展示了如何减少系统调用开销,降低软中断的影响,并提供了使用strace、top及mpstat等工具的方法。

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

保建国是我们另外一个组做存储的人,对内核很了解的高手,看到我在做性能优化,说perf这个可以看到内核消耗的时间。

gprof主要是优化用户空间程序调用,perf主要是看内核的函数占用的时间。

rtmp这种协议,将message分成chunk后发送,会导致小的chunk包在user和kernel之间拷贝,放在哪个地方都是一样的费时间。

centos6下面才有这个工具,系统自带的。

使用方法:

perf record -g -p 8786

运行一段时间后,按CTRL+C退出。

然后看结果:

perf report -g

另外,top也能看到CPU的用户使用,内核使用率,中断的CPU使用率。

Cpu7  : 57.5%us, 19.6%sy,  0.0%ni,  5.0%id,  0.0%wa,  0.0%hi, 17.9%si,  0.0%st

明显内核和软中断比较高,用户空间也不小。


另外,mpstat也能看到。

mpstat -P ALL 3

12:33:09 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s

12:33:12 PM    7   56.15    0.00   18.94    0.00    0.00   19.60    0.00    5.32   7373.09

可见用户空间,系统调用和软中断(网卡发包)三个大头。


查看系统调用占用的时间:sudo strace -p 25817 -c

譬如:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 85.32    0.003865           0    142413           gettimeofday

获取时间的函数太多了,改了下后,提升了6%左右。


另外,绑定cpu后,能将软中断降低10%,所以降低CPU10%。

taskset -p 1 pid

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_MRG/1.3/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-General_System_Tuning-Interrupt_and_Process_Binding.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

winlinvip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值