OProfile 效能分析工具

2021-09-09 04:23:16 字數 2923 閱讀 1787

oprofile 效能分析工具

官方**:

oprofile.ko模組

本文主要介紹oprofile工具,適用系統的cpu效能分析,最主要它能深入核心函式,這是很多使用者態工具達不到的地方.

oprofile是乙個核心態工具,通過oprofile.ko模組核心模組來獲取資料

需要在載入oprofile.ko模組的時候,傳遞」timer=1″引數. modprobe oprofile timer=1

oprofile

oprofile是linux核心支援的一種效能分析機制。

外文名 oprofile

作 用: 用於 linux 評測和效能監控工具

定 義: linux核心支援一種效能分析機制

分 類: 核心模組,守護程序

取樣方式: 基於事件的取樣和基於時間的取樣

oprofile工具: op_help,op_time,op_merge

簡介它在時鐘中斷處理入口處建立監測點,記錄被中斷的上下文現場,由配套的使用者態的工具oprof_start負責在使用者態收集資料,opreport則分析資料並給出分析報告。[1]

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)轉換為本地格式

參考資料

linux核心效能分析 oprofile .開源社群網[引用日期2012-09-8]

oprofile(o profile) for linux on power 使用了乙個核心模組oprofile和乙個使用者空間守護程序,前者可以訪問效能計數暫存器,後者在後台執行,負責從這些暫存器中收集資料。在啟動守護程序之前,oprofile 將配置事件型別以及每種事件的樣本計數(sample count)。如果沒有配置任何事件,那麼 oprofile 將使用 linux on power 上的預設事件,即 cycles,該事件將對處理器迴圈進行計數。事件的樣本計數將決定事件每發生多少次計數器才增加一次。oprofile 被設計成可以在低開銷下執行,從而使後台執行的守護程序不會擾亂系統效能。

oprofile 具有對 power4?、power5? 和 powerpc? 970 處理器的核心支援。powerpc 970 和 power4 處理器有 8 個計數暫存器,而 power5 處理器有 6 個計數暫存器。在不具備 oprofile 核心支援的架構上使用的則是計時器(timer)模式。在這種模式下,oprofile 使用了乙個計數器中斷,對於禁用中斷的**,oprofile 不能對其進行分析。

與 oprofile 核心支援一起提供的還有一些與核心互動的使用者空間工具,以及分析收集到的資料的工具。如前所述,oprofile 守護程序收集樣本資料。控制該守護程序的工具稱作 opcontrol。表 1 列出了用於 opcontrol 的一些常見的命令列選項。本文的後面還將描述 opreport 和 opannotate 這兩個工具,它們都是用於分析收集到的資料的工具。在 oprofile 手冊的第 2.2 節中,可以找到對所有 oprofile 工具的概述。(請參閱參考資料。)

oprofile 例子

您可以使用 oprofile 來分析處理器週期、tlb 失誤、記憶體引用、分支**失誤、快取失誤、中斷處理程式,等等。同樣,您可以使用 opcontrol 的 --list-events 選項來提供完整的特定處理器上可監視事件列表。

分析是開發過程中最困難的任務之一。為了使**獲得最佳效能,好的工具是必不可少的。oprofile 就是這樣一種工具,目前它提供了針對 linux on power 的分析功能。對於其他平台上的可以快速移植到 linux on power 的 linux,還有其他許多效能和除錯工具。除了處理器事件的型別有所差別外,在基於 power 處理器的 linux 平台上執行 oprofile 與在其他架構上執行 oprofile 是類似的。所以,如果在其他平台上使用過 oprofile,那麼您應該在很短時間內就可以知道如何在 linux on power 上執行 oprofile。

mysql 效能分析 mysql效能分析工具

一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...

效能分析工具彙總

cpu效能分析工具 vmstat pssar time strace pstree topmemory效能分析工具 vmstat strace topipcs ipcrm cat proc meminfo cat proc slabinfo cat proc maps i o效能分析工具 vmsta...

Android效能分析工具

1 systrace 在android4.1以後才出現的工具,採用python指令碼實現,可以生成html格式的報告,螢幕渲染時間為16ms,如果超過10ms的話就會產生卡頓。它主要由3部分組成 2 traceview 有兩種方法,第一種,在 中新增開始和結束函式呼叫,第二紅採用ddms開始和停止按...