Oprofile安装与使用探索
本文分别尝试了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
相关参考:
1 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安装与使用探索的更多相关文章
- oprofile 安装使用
ubuntu上要编译安装oprofile.现在版本(0.9.9)的oprofile的编译需要binutil-dev libpopt-dev apt-get install binutil-dev li ...
- Linux性能分析工具的安装和使用
转自:http://blog.chinaunix.net/uid-26488891-id-3118279.html Normal 0 7.8 磅 0 2 false false false EN-US ...
- kibana从入门到精通-Kibana安装
作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 logstash快速入门实战指南 简介 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之 ...
- Freemarker 的 Eclipse 插件 安装
clipse版本(目前最新oxygen) 如果你的eclipse版本为Oxygen "Help" ---> "Eclipse Marketplace..." ...
- Lucene 学习-安装 Kibana 视图界面
Kibana 是一个开源的分析与可视化平台,设计出来用于和 Elasticsearch 一起使用的. 你可以使用 Kibana 搜索.查看.交互存放在 Elasticsearch 索引里的数据.使用各 ...
- 安装绿色版mysql小记(5.7.11)
平时使用oracle,感觉太耗我电脑内存了,实在不想用oracle做平时练习了,那就只装一个客户端,工作用..平时自己试试mysql吧..mysql的安装真麻烦,真不是傻瓜式安装就能用,稍微配置不对就 ...
- 性能测试:oprofile的学习使用
一.oprofile简介 Oprofile是linux上的性能监测工具,有人说是性能测试的神器.通过CPU硬件提供的性能计数器对事件进行采样,从代码层面分析程序的性能消耗情况,找出程序性能的问题点. ...
- Centos6下通过 oprofile分析CPU性能
Centos6下通过 oprofile分析CPU性能 2014-01-18 10:55:15 bobpen 阅读数 2218更多 分类专栏: linux 版权声明:本文为博主原创文章,遵循CC 4 ...
- 来玩Play框架01 简介
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 说到网络框架,Ruby的Ruby on Rail和Python的Django都相当 ...
随机推荐
- FOR UPDATE SKIP LOCKED
SYS_UNIT 中有UNIT_ID 0000000001 0000000002 0000001100 原意为若启用多线程,则每个线程在获取时仅可以获取一条数据(互斥) 脚本如下 1.SELECT * ...
- 写一个Windows上的守护进程(6)Windows服务
写一个Windows上的守护进程(6)Windows服务 守护进程因为要开机启动,还要高权限,所以我就把它做成Windows服务了. 关于Windows服务的官方文档,大家可以看https://msd ...
- main()和_tmain()有什么区别
用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是<iostream.h>而是&l ...
- js 函数声明与函数表达式
1,变量包括全局变量和局部变量,局部变量只能在函数内部访问.如果函数传参和全局变量一样的话,即使是给全局变量赋值,这里会把全局变量当成局部变量的. 如: 1: var x='x'; 2: 3: ...
- commons-logging 和 log4j 之间的关系
我们在做项目时,日志的记录是必不可少的一项任务,而我们通常是使用 apache 的 log4j 日志管理工具.然而,在项目中,我们经常会看到两个 jar 包:commons-logging.jar 和 ...
- Delphi 10.1 Berlin 与 Delphi 10 Seattle 共存
以下安装环境是win7 64位 1. 安装Delphi10.1 Berlin 版本. 2.修改C:\Program Files (x86)\Embarcadero\Studio\18.0\cglm.i ...
- pubwin2009服务端 修改系统时间方法
所有操作都是必须的,包括重启. 1.建议操作前全体结账,并交班---不结帐的话, 改完时间会出问题的.2.停止pubwin2009服务端 3.将C:\WINDOWS\system32\driver ...
- python计算机视觉2:图像边缘检测
我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 如果需要检测到图像里面的边缘,首先我们需要知道边缘处具有什么特征. 对于一幅灰度图像来说,边缘两边的灰度值肯定不相同,这样我们才能分辨出哪里是 ...
- 2015网易校招Java开发工程师(技术架构)在线笔试题
1. 程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...
- information_schema.collation_character_set_applicability 学习
字符集和排序规则之间是不可以随便搭配的.如果你想知道一个字符集它所搭配的排序规则有哪些?那就可以从information_schema.collation_character_set_applicab ...