第 43章 . OProfile

OProfile 是一个低管理费用的系统全局的性能监视工具。它使用处理器上的性能监视硬件来检索关于内核以及系统上的可执行文件的信息,例如内存是何时被引用的;L2 缓存请求数量;收到的硬件中断数量等。在红帽企业 Linux 系统上,你必须安装 oprofile RPM 软件包才能使用该工具。

许多处理器都包含专用的性能监视硬件。该硬件能够在某些事件发生时(如所请求的数据不在缓存内)检测到它们。硬件通常是一个或多个计数器(counters),它们在每次事件发生时都递增一位。当计数器的值“翻转还原”,中断就会生成,从而能够控制性能监视的详细程度(以及由此带来的费用)。

OProfile 使用这个硬件(若没有性能监视硬件则使用一个基于计时器的代用品)来在每次计数器生成中断时收集与性能相关的数据样品(samples)。这些样品被定期写入磁盘;稍后,其中的数据就会被用来生成系统级别和应用程序级别的性能报告。

重要重要
 

红帽企业 Linux 3 对 OProfile 的内核支持是基于从2.5版的开发内核中后向导入的。当引用 OProfile 文档时,尽管内核版本是2.4,但是2.5版特有的功能可以应用在红帽企业 Linux 3 的 OProfile 上。同理,2.4版特有的 OProfile 功能就能被应用到红帽企业 Linux 3 上。

OProfile 是一个很有用的工具,但是请了解使用它的一些局限性:

在红帽企业 Linux 中,只有多处理器(SMP)内核才启用了 OProfile 支持。要判定运行的是哪个内核,使用以下命令:

uname -r

如果返回的内核版本以 .entsmp 结束,运行的就是多处理器内核。否则,即使系统不是多处理器系统,也请通过红帽网络或发行光盘来安装它。多处理器内核可以在单处理器内核上运行。

43.1. 工具总览

表 43-1提供了对 oprofile 软件包中包括的工具的总览。

命令描述
opcontrol

配置要收集的数据。详情请参阅第 43.2 节

op_help

显示系统处理器的可用事件以及每个事件的简单描述。

op_merge

合并同一可执行文件的多个样品。详情请参阅第 43.5.4 节

op_time提供对所有建档的可执行文件的总览。详情请参阅第 43.5.1 节
op_to_source如果应用程序使用调试符号编译了,创建带注解的源码。详情请参阅第 43.5.3 节
oprofiled

作为守护进程来运行,定期把样品数据写入磁盘。

oprofpp

检索档案数据。详情请参阅第 43.5.2 节

op_import

把样品数据库文件从异类二进制格式转换成系统的本地原始格式。只有在分析不同体系的样品数据库时才使用该选项。

表 43-1. OProfile 命令