oProfile

oProfile

网络性能监控工具
OProfile是Linux内核支持的一种性能分析机制。该源码主要是在龙芯平台上运行的源码。[1]
    中文名:OProfil 外文名: 别名: 定义:Linux内核支持的一种性能分析机制 分类:内核模块,守护进程 采样方式:基于事件的采样和基于时间的采样

简介

它在时钟中断处理入口处建立监测点,记录被中断的上下文现场,由配套的用户态的工具oprof_start负责在用户态收集数据,opreport则分析数据并给出分析报告。

Oprofile是用于Linux的若干种评测和性能监控工具中的一种,它可以工作在不同的体系结构上,包括IA32,IA64和AMD Athlon系列。Oprofile包含在Linux2.5和更高版本的内核中,也包含在大多数较新的Linux版本中,包括Red Hat9。

特点

基于事件的采样是oprofile只记录特定事件(比如L2ca chemiss)的发生次数,当达到用户设定的定值时oprofile就记录一下(采一个样)。这种方式需要CPU内部有性能计数器(perfor macecounter)。

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

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

相关词条

相关搜索

其它词条