oProfile

OProfile是Linux核心支持的一種性能分析機制,是用於 Linux 評測和性能監控的工具。

基本介紹

  • 外文名:OProfile
  • 作用:用於 Linux 評測和性能監控工具
  • 定義:Linux核心支持一種性能分析機制
  • 分類:核心模組,守護進程
  • 採樣方式:基於事件的採樣和基於時間的採樣
  • OProfile工具:op_help,op_time,op_merge
簡介,特點,

簡介

它在時鐘中斷處理入口處建立監測點,記錄被中斷的上下文現場,由配套的用戶態的工具oprof_start負責在用戶態收集數據,opreport則分析數據並給出分析報告。
Oprofile 是用於 Linux 的若干種評測和性能監控工具中的一種,它可以工作在不同的體系結構上,包括 IA32, IA64 和 AMD Athlon 系列。Oprofile 包含在 Linux 2.5 和更高版本的核心中,也包含在大多數較新的 Linux 版本中,包括 Red Hat 9 。

特點

oprofile 是 Linux 平台上的一個功能強大的性能分析工具, 支持兩種採樣(sampling)方式:基於事件的採樣(event based)和基於時間的採樣(time based)。
基於事件的採樣是oprofile只記錄特定事件(比如L2 cache miss)的發生次數,當達到用戶設定的 定值時oprofile 就記錄一下(采一個樣)。這種方式需要CPU 內部有性能計數器(performace counter)。
基於時間的採樣是oprofile 藉助OS 時鐘中斷的機制,每個時鐘中斷 oprofile 都會記錄一次(采一次樣)。引入的目的在於,提供對沒有性能計數器 CPU 的支持。其精度相對於基於事件的採樣要低。因為要藉助 OS 時鐘中斷的支持,對禁用中斷的代碼oprofile不能對其進行分析。
oprofile 在Linux 上分兩部分,一個是核心模組(oprofile.ko),一個為用戶空間守護進程(oprofiled)。前者負責訪問性能計數器或者註冊基於時間採樣的函式(使用register_timer_hook註冊之,使時鐘中斷處理程式最後執行profile_tick 時可以訪問之),並採樣置於核心的緩衝區內。後者在後台運行,負責從核心空間收集數據,寫入檔案。
Oprofile 工具概述:
op_help: 列出可用的事件,並帶有簡短的描述
opcontrol: 控制 Oprofile 的數據收集
oprofpp: 檢索有用的評測數據
  
op_time: 為系統上的所有映像列出相關的評測值
  
op_to_source: 產生帶註解的源檔案、彙編檔案或源檔案和彙編檔案的混合
op_merge: 合併屬於同一個應用程式的採樣檔案
  
op_import: 將採樣資料庫檔案從外部格式(abi)轉換為本地格式

相關詞條

熱門詞條

聯絡我們