1. 程式人生 > >oprofile庫安裝與使用

oprofile庫安裝與使用

一、概述

oprofile庫是linux平臺上的一個功能強大的效能分析工具,支援兩種取樣方式:基於事件的取樣與基於時間的取樣。

1)基於事件的取樣:oprofile只記錄特定事件(比如L2 cache miss)的發生次數,當達到使用者設定的值時,oprofile就記錄一下(取樣一次)。這種方式需要CPU內部有效能計數器。

2)基於時間的取樣是oprofile藉助OS時鐘中斷的機制,每個時鐘中斷oprofile都會記錄一次(取樣一次),其精度相對於基於事件的取樣要低。因為要藉助OS時鐘中斷的支援,對禁用中斷的程式碼oprofile不能對其進行分析。

oprofile在Linux上分為兩部分,一個是核心模組(oprofile.ko),一個是使用者空間的守護程序(oprofiled)。

1)oprofile.ko 負責訪問效能計數器或者註冊基於時間取樣的函式(使用register_timer_hook註冊之,使時鐘中斷處理程式最後執行profile_tick時可以訪問之),並將取樣置於核心的緩衝區內。

2)oprofiled在後臺執行,負責從核心空間蒐集資料,寫入檔案。

二、注意事項

1)不建議在虛擬機器裡利用oprofile來測試效能,因為虛擬機器對oprofile支援不好。

2)除錯的核心最好是原生的核心,發行版Linux(比如redhat)自帶的核心一般都是經過大量修改的,對oprofile支援不好,所以我們最好從kernel官方網站下載原始碼後自行編譯生成核心,重啟機器對新核心環境進行效能測試。另外oprofile需要的是未經壓縮的核心映象,所以/boot目錄的vmlinuz-x.x.xx是不能用的,而需要使用linux原始碼編譯目錄裡的未壓縮映象檔案,比如/usr/src/linux-2.6.30/vmlinux

3)需要新增核心配置檔案

CONFIG_OPROFILE=m(或者y)

CONFIG_PROFILIING=y

一般核心將oprofile編譯成模組,可以自行載入。在/lib/modules/3.xx.xx/kernel/arch/x86/oprofile下有oprofile.ko核心模組。

三、編譯問題

./configure make & sudo make install

1)提示:configure:error:popt library not found

./configure make & sudo make install

繼續進入oprofile目錄執行./configure

2)提示:configure:error: liberty library not found

./configure --with-sysroots
make clean
make
sudo make install

3)提示:C compiler cannot create executables刪除/usr/local/bin/ld檔案,刪除之前做個備份,然後在執行上面“ 2)“的流程

4)繼續進入到oprofile目錄執行./configure

提示:configure:error:liberty library not found

該庫也是在binutils中,在libiberty下,由於libiberty的configure沒有提供--enable-shared選項,所以需要我們自己製作so檔案,編輯Makefile,加上-fPIC編譯選項,然後利用make gcc生成so:

cd libiberty //進入該目錄
./configure  //完成之後會有個Makefile檔案產生
vi Makefile  //編輯該檔案,找到並修改該行為: CFLAGS = -g -O2 -fPPIC 儲存
make clean
make
gcc -shared *.o -o libiberty.so  //生成.so檔案,把該檔案拷到/usr/lib中
sudo cp libiberty.so /usr/lib/libiberty.so

最後還需要bfd的動態連結庫,也是在binutils中,在bfd中,由於自帶的configure可以加入--enable-shared,所以可以利用該引數自動生成.so檔案到/usr/lib中

cd bfd
./configure --enable-shared
make clean
make
sudo make install
其實最後生成的libbfd-2.25在/usr/local/lib目錄下,需要通過export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib指定libbfd-2.25庫的位置,方便oprofile的一些應用程式能夠找到動態連結庫。

最後回到oprofile目錄中再安裝一遍:

./configure
make clean
make
sudo make install


轉載的幾個網址:

相關推薦

oprofile安裝使用

一、概述 oprofile庫是linux平臺上的一個功能強大的效能分析工具,支援兩種取樣方式:基於事件的取樣與基於時間的取樣。 1)基於事件的取樣:oprofile只記錄特定事件(比如L2 cache miss)的發生次數,當達到使用者設定的值時,oprofile就記錄一下

SQL server數據安裝表的基本使用

col 技術 gem -o x64 log sql shadow png **** SQL server 安裝與基礎使用**** 一.安裝SQL Server 2008 R2企業版(64位)x64前的準備 二、安裝S

mysql數據安裝配置

fig creat rest restart mysql常用命令 mysql 需要 數據庫安裝 upd 1.(訪問賬號權限控制)dql-查詢(select) dml-(insert update delete) ddl-(create table create view)

mongodb數據安裝卸載

all x86 端口 AR 刪除 進行 -m 文件 bsp 此處以centos下monggodb3.4版本安裝為例,可參考官網安裝教程 步驟如下: 1、配置mongodb ym源 vi /etc/yum.repos.d/mongodb-org-3.4.repo 文件內容

1.mysql數據安裝卸載

mysql 安裝 卸載 安裝前可以刪除mysql/bin/*.pdb(臨時文件)安裝步驟:如何卸載mysql?設置開機啟動mysql服務安裝mysql時指定服務名1.mysql數據庫安裝與卸載

Oracle數據安裝連接簡介

名稱 bsp dev ali 技術分享 改變 oracle oracle官網 註意 Oracle數據庫的安裝 1.登錄Oracle官網——試用和下載 2.同意協議--->file1 3.完成配置 4.測試連接:打開Oracle developer---

深度學習安裝使用

Theano windows下 Download Anaconda now! conda install mingw libpython pip install theano Keras Windows下 通過 cond

zlib 安裝使用

1. zlib簡介   zlib 適用於資料壓縮的函式庫,由Jean-loup Gailly (負責compression)和 Mark Adler (負責decompression)開發。    zlib被設計成一個免費的、通用的、法律上不受阻礙(即沒有被

python3影象識別安裝使用

pytesseract庫的安裝 因為用的win10,就直說windows上面的安裝了。其實就是pip安裝就完事了。 $ pip install pytesseract 安裝了這個還不算完,得安裝Tesseract-OCR,安裝這個軟體的時候,因為我們需

MySQL5.6 數據主從(Master/Slave)同步安裝配置詳解

inux bind 主從配置 希望 master 強調 數據庫主從 ria 配置文件 目錄(?)[+] 安裝環境 操作系統 :CentOS 6.5 數據庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.

CentOS6.4下Mysql數據安裝配置

商業 storage 不同的 pool use 速度 man aries ora 原文連接:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 說到數據庫,我們大多想到的是關系型數據

Mysql數據一:安裝創建windows服務

clear 程序 啟動 hang spa -- pan mysql數據庫 top Mysql數據庫安裝與創建windows服務 1.先下載壓縮包(mysql-5.7.18-winx64.zip)移動到對應目錄(如D:\software)後解壓. 2.安裝服務端: m

MySQL數據(1)_MySQL數據介紹安裝

structure 文件 nbsp code 字符串常量 blank 擴展性 比較 模式 一、數據庫相關概念的簡介   數據庫(database,DB)是指長期存儲在計算機內的,有組織,可共享的數據的集合。數據庫中的數據按一定的數學模型組織、描述和存儲,具有較小的冗余,較高

Mysql-day1數據安裝介紹

圖片 找到 環境變量 版本 安裝步驟 系統 com 安裝位置 image 一、mysql的安裝步驟 以5.7.20版本為例: 第1步: 第2步: 第3步: 第4步: 第5步: 第6步: 第7步: 第8步: 第9步:

oracle數據安裝連接關鍵點

navi clas bubuko mage 遠程連接 http height 連接 成了 一、window xp系統上安裝Oracle Database 10G 解鎖Scott、Hr賬號並重置口令 遠程連接數oracle數據庫地址 二、在Mac系統上使用Na

數據服務器的安裝配置 如何搭建數據專用服務器

mar sso 混合模式 api 需要 按鈕 有一個 通過 性能 理論基礎 數據庫服務器是當今應用最為廣泛的一種服務器類型,許多企業在信息化建設過程中都要購置數據庫服務器。數據庫服務器主要用於存儲、查詢、檢索企業內部的信息,因此需要搭配專用的數據庫系統,對服務器的兼容性、可

【MySQL系列】01.數據簡介MySQL安裝

都在 批量導入數據 ces 網絡 file 升級版 key rep 監聽 去年就想寫MySQL的教程,但是由於學的不好就沒有誤導大家,今年就把學習中的經驗分享給大家,大家也可以加我的QQ群:運維架構師交流群 ~~~~群號:476794643~~~~,一起學習交流 01.數

高性能內存對象緩存Memcached安裝及數據操作管理

客戶端程序 環境變量 rest close sql數據庫 blog erl gcc-c++ 安裝php 認識Memcached Memcached是一套開源的高性能分布式內存對象緩存系統,它將所有的數據都存儲在內存中,因為在內存中會統一維護一張巨大的Hash表,所以支持任意

Redis緩存數據安裝配置(1)

cte quest ready 計算 測試工具 報錯信息 數據庫的安裝 參數說明 div 1.安裝 tarxf redis-3.2.5.tar.gz cd redis-3.2.5 make mkdir -p /usr/local/redis/bin src目錄下這些文件作

oracle-數據安裝

程序 用戶 權限設置 sql 庫服務器 我們 evo 系統權限 ngs oracle-數據庫的安裝與建庫1、下載oracle,安裝2、單擊開始->所有程序->oracle->應用程序開發->SQLplus,然後要你提示輸入用戶名和密碼,這個時候你怎麽