本文分别尝试了oprofile在x86平台和龙芯平台上的安装

一:oprofile的安装与配置(intel+ubuntu12.04)

I. Oprofile 安装

Oprofile 包含在 Linux 2.6 版本的内核中,是用于 Linux 的若干种评测和性能监控工具中的一种。 也可从官方网站下载源码进行编译安装;具体安装步骤:

1. ./configure –with-kernel-support

注:在编译过程中,这一步出现的问题是:

( 1 )缺少 libiberty.h 头文件 ; ( 2 )缺少 popt ;

libiberty.h 头文件在 binutils-devel package 中,需要下载这个包进行安装;也可通过用 sudo apt-get install binutil-dev进行包安装。 Popt 存在 libpopt-devel package 中,同样需要进行下载安装; sudo apt-get install libpopt-dev;

 2. make

3. make install

II. linux内核的编译(linux-2.6.27)

1 将下载的内核放在 /usr/src 目录下;进行解压: tar -jxvf linux-source-2.6.27.tar.bz2;

2 接下来对内核进行配置: make menuconfig

这时候会跳出图形化的界面,需在General Setup 中的 Local version – append to kernel release 是可以自己 定制自己喜欢的内核名字; Load an Alternate Configuration File 此选项可以引用系统中的配置文件,我这里选的是/usr/src/linux-source-2.6.27/arch/x86/configs/下的一个

 注意: 这里面有一个Virtualization选项,最好把它勾掉,不然可能在后面出现 错误: 重复的成员‘padding’

3 make

这里会出现很多问题:

(1)缺少一些包比如libncurses-dev等

这个apt-get install 就可以了:sudo  apt-get install build-essential kernel-package  libncurses5-dev

(2)gcc: 错误: elf_i386:没有那个文件或目录

原因是 gcc 4.6 不再支持 linker-style 架构。讲 arch/x86/vdso/Makefile 中, 将以 VDSO_LDFLAGS_vdso.lds 开头所在行的 “-m elf_x86_64″ 替换为 “-m64″。 将以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 “-m elf_x86″ 替换为 “-m32″。

4  make modules_install 安装配置中选定的模块。
5  make install
6  检查是否生成 initrd 镜像文件,在 ubuntu 下并没有生成,需要在 /boot 下面使用命令:mkinitramfs -o initrd.img.2.6.27.18 生成镜像文件。

III oprofile 使用

oprofile需要在root权限下使用

具体流程:

opcontrol –init
opcontrol –no-vmlinux   //(不用检测评测内核  ,如果需要:opcontrol –vmlinux=/src/urc/linux-2.6.27/vmlinux)

opcontrol –setup  –event=CPU_CLK_UNHALTED:10000:0  设置计数器事件

//其实这里面的event还有很多,可以根据opcontrol -l命令查看,这个设置一次就可以了

opcontrol –reset

opcontrol –start

/*这里面可能会出问题:Error: counter 0 not available nmi_watchdog using this resource ?   解决办法:opcontrol –deinit ,echo 0 > /proc/sys/kernel/watchdog,opcontrol –init  */

./bin/test  执行你的程序

opcontrol –dump 把收集到的数据写入文件

opcontrol –stop 停止profiling

opcontrol -h 关闭守护进程oprofiled

opcontrol –shutdown 停止oprofiled

opcontrol –deinit 卸载模块

得到性能数据之后,可以使用opreport, opstack, opgprof, opannotate几个工具进行分析
opreport  -l ./bin/test -o test.log   显示出分析结果

opannotate –source ./bin/test  分析源码

IV Oprofile一些命令

1  opcontrol –separate=<choice>

<choice> 可以是以下之一:none — 不要分离档案(默认),library — 为库生成每个应用程序的档案,kernel — 为内核和内核模块生成每个应用程序的档案,all — 为库生成每个应用程序的档案,为内核和内核模块生成每个应用程序的档案

2  opcontrol –status  查看目前的设置

V 其他

二:oprofile的安装与配置(loongson3A+debian6.0.3+linux2.6.36.3)

在龙芯上安装oprofile比较的麻烦,这里推荐一种比较简单的方法

I 下载最新的3A内核

release版本http://www.loongson.cn/dev/ftp/kernel/release/3A_1way/bin/

将下载的vmlinux20XX…替换掉/boot/vmlinux  (这里你最好对以前的vmliux进行备份以备不测)

重启,你的系统的内核就已经更新了

注:这是一种简单的方式,你也可以下载内核源码包,自行编译,但是那样要求一些编译环境还需要修改一些东西,比较的麻烦,不适合新手

II 下载oprofile

这里的oprofile是从http://www.loongson.cn/dev/ftp/toolchain/oprofile/oprofile3asrc.tar.gz下载下来

III 编译oprofile

进入oprofile目录下

1.配置:./configure –with-kernel-support –disable-werror

–prefix=/usr/oprofile

2 make

这时候可能会出现上面一样的缺失包的情况,装上就可以了

3 make install

这样,就在longson3A上编译成功,可以按照上面在X86上的使用方法使用oprofile

相关参考:

http://www.loongson.cn/dev/wiki/Oprofile%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7

2  http://blog.csdn.net/yili_xie/article/details/4925648

Oprofile安装与使用探索的更多相关文章

  1. oprofile 安装使用

    ubuntu上要编译安装oprofile.现在版本(0.9.9)的oprofile的编译需要binutil-dev libpopt-dev apt-get install binutil-dev li ...

  2. Linux性能分析工具的安装和使用

    转自:http://blog.chinaunix.net/uid-26488891-id-3118279.html Normal 0 7.8 磅 0 2 false false false EN-US ...

  3. kibana从入门到精通-Kibana安装

    作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 logstash快速入门实战指南 简介 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之 ...

  4. Freemarker 的 Eclipse 插件 安装

    clipse版本(目前最新oxygen) 如果你的eclipse版本为Oxygen "Help" ---> "Eclipse Marketplace..." ...

  5. Lucene 学习-安装 Kibana 视图界面

    Kibana 是一个开源的分析与可视化平台,设计出来用于和 Elasticsearch 一起使用的. 你可以使用 Kibana 搜索.查看.交互存放在 Elasticsearch 索引里的数据.使用各 ...

  6. 安装绿色版mysql小记(5.7.11)

    平时使用oracle,感觉太耗我电脑内存了,实在不想用oracle做平时练习了,那就只装一个客户端,工作用..平时自己试试mysql吧..mysql的安装真麻烦,真不是傻瓜式安装就能用,稍微配置不对就 ...

  7. 性能测试:oprofile的学习使用

    一.oprofile简介 Oprofile是linux上的性能监测工具,有人说是性能测试的神器.通过CPU硬件提供的性能计数器对事件进行采样,从代码层面分析程序的性能消耗情况,找出程序性能的问题点. ...

  8. Centos6下通过 oprofile分析CPU性能

    Centos6下通过 oprofile分析CPU性能 2014-01-18 10:55:15 bobpen 阅读数 2218更多 分类专栏: linux   版权声明:本文为博主原创文章,遵循CC 4 ...

  9. 来玩Play框架01 简介

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 说到网络框架,Ruby的Ruby on Rail和Python的Django都相当 ...

随机推荐

  1. 转:Dictionary<int,string>怎么获取它的值的集合?急!急!急!

    怎么获取Dictionary<int, string>的值?我知道这个是键值对的,我知道可以根据key得到value,但关键是现在连key也不知道啊就是想让这个显示在listbox中,应该 ...

  2. JQuery easyui (2)Droppable(放置)组件

    所谓放置,就是将一个物体放入一个物体内,当然对于easyui来说触发各种效果是必不可少的,同时这个组件也不会依赖于其他组件. Droppable的加载方式 1,class  加载   一直不太喜欢cl ...

  3. MySQL--query-cache

    知识准备: 1.mysql 的query-cache是什么?  mysql可以把执行完成的select 语句和这个select 语句对应的结果集缓存起来:下次再用调用相同的select 语句时就直接返 ...

  4. C++之------运算符重载

    ①  什么是运算符重载? 何为C++的运算符重载呢? 其实就是运算符给它重新赋予新的含义或者多重含义.让它有另外一种新的功能. 为什么需要运算符重载? 面向对象中为了实现类的多态性,我们就引用了运算符 ...

  5. 巧用Graphviz和pvtrace等工具可视化C函数调用

    http://guiquanz.github.io/2012/10/15/linux_c_call_trace/

  6. php修改配置文件php.ini设置文件上传大小讲解

    打开php.ini,首先找到;;;;;;;;;;;;;;;;; File Uploads ;;;;;;;;;;;;;;;;;区域,有影响文件上传的以下几个参数: file_uploads   =   ...

  7. Gson的简单使用

    package test; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.uti ...

  8. WPF笔记(1.8 资源与映射)——Hello,WPF!

    原文:WPF笔记(1.8 资源与映射)--Hello,WPF! 终于,看明白了,已经是凌晨1:39分.这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解,改 ...

  9. spring3.0事务的配置

    第一种配置方法:基于XML的事务管理 这种方法不需要对原有的业务做任何修改,通过在XML文件中定义需要拦截方法的匹配即可完成配置,要求是,业务处理中的方法的命名要有规律,比如setXxx,xxxUpd ...

  10. HDU 3634 City Planning (离散化)

    City Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...