fedora 11 下分析系统性能瓶颈之(四)oprofile

左手的ㄟ右手 2022-01-06 11:13 252阅读 0赞

oprofile 是 Linux 平台上,类似 INTEL VTune 的一个功能强大的性能分析工具。

其支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time based)。
基于事件的采样是oprofile只记录特定事件(比如L2 cache miss)的发生次数,当达到用户设定的定值时oprofile 就记录一下(采一个样)。这种方式需要CPU 内部有性能计数器(performace counter)。现代CPU内部一般都有性能计数器,龙芯2E内部亦内置了2个性能计数器。

基于时间的采样是oprofile 借助OS 时钟中断的机制,每个时钟中断 oprofile 都会记录一次(采一次样)。引入的目的在于,提供对没有性能计数器 CPU 的支持。其精度相对于基于事件的采样要低。因为要借助 OS时钟中断的支持,对禁用中断的代码oprofile不能对其进行分析。

oprofile 在Linux 上分两部分,一个是内核模块(oprofile.ko),一个为用户空间的守护进程(oprofiled)。前者负责访问性能计数器或者注册基于时间采样的函数(使用register_timer_hook注册之,使时钟中断处理程序最后执行profile_tick 时可以访问之),并采样置于内核的缓冲区内。后者在后台运行,负责从内核空间收集数据,写入文件。

安装:

[root@Tux ~]# yum list |grep oprofile
eclipse-oprofile.i586 0.2.0-2.fc11 @updates
oprofile.i586 0.9.4-12.fc11 @updates
oprofile-devel.i586 0.9.4-12.fc11 @updates
oprofile-gui.i586 0.9.4-12.fc11 @updates
oprofile-jit.i586 0.9.4-12.fc11 @updates
oprofileui.i586 0.2.0-3.fc11 @fedora
[root@Tux ~]# yum -y install oprofile*

初始化:
opcontrol —init

该命令会加载oprofile.ko模块,mount oprofilefs。成功后会在/dev/oprofile/目录下导出一些文件和目录如: cpu_type, dump, enable, pointer_size, stats/

[root@Tux ~]# opcontrol —init
[root@Tux ~]# ls -F /dev/oprofile/
0/ 1/ backtrace_depth buffer buffer_size buffer_watershed cpu_buffer_size cpu_type dump enable pointer_size stats/

配置:
主要设置计数事件和样本计数,以及计数的CPU模式(用户态、核心态)

opcontrol —setup —event=EVENT:1000::0:1

则是设置计数事件为EVENT,即对处理器时钟周期进行计数
样本计数为1000,即每1000个时钟周期,oprofile 取样一次。
处理器运行于核心态则不计数
运行于用户态则计数

--event=name:count:unitmask:kernel:user

name: event name, 这里event name可以通过#opcontrol —list-events查看。
count: reset counter value e.g. 100000
unitmask: hardware unit mask e.g. 0x0f
kernel: whether to profile kernel: 0 or 1
user: whether to profile userspace: 0 or 1

启动

opcontrol —start
取出数据

opcontrol —dump
opcontrol —stop
分析结果

opreport -l ./binary_file

要想看到例子,请看IBM牛人的文章:http://www.ibm.com/developerworks/cn/linux/l-pow-oprofile/

转载于:https://www.cnblogs.com/linuxkernel/archive/2009/09/24/1855009.html

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读