`
bcyy
  • 浏览: 1818529 次
文章分类
社区版块
存档分类
最新评论

Linux虚拟机上安装性能测试工具OProfile(2012.12.04修订)

 
阅读更多

OProfile是Linux平台支持的一款功能强大的性能分析工具。网络上很多关于如何安装在虚拟机上安装OProfile的文章,但很多都存在这样或那样的问题。现经本人整理和实验后,其在Linux上虚拟机上的安装过程如下:

①、安装虚拟机

为了保证虚拟机能够正常启动,在安装虚拟机的过程中,请将磁盘模式设置为IDE。否则,升级内核后,将会报"pci 18.2: no compatible bridge window for [io 0xf000-0xffff]"错误,且无法启动虚拟机!


图1 设置磁盘模式

②、配置内核

内核的配置可参考博文《Linux内核升级》,配置完成后,再对内核配置文件.config进行如下修改:

// 加上OPROFILE配置
CONFIG_PROFILING=y
CONFIG_OPROFILE=m(注:m表示编译为模块,y表示编译到内核中)
CONFIG_OPROFILE_EVENT_MULTIPLEX=y
 
// 加上APIC配置
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCATE_APIC=y
CONFIG_PCI_IOAPIC=y

③、内核替换

有了①、②的配置之后,便可进行内核的编译和替换了(注:可参考博文《Linux内核升级》

④、其他配置

内核升级完成后,这时使用OProfile会报如下错误:

#opreport -l ./a.out
Overflow stats not available
error: no sample files found: profile specification too strict?

解决方案:

#opcontrol --deinit
#modprobe oprofile timer=1
#echo "options oprofile timer=1" >> /etc/modprobe.conf

⑤、执行过程

// 加载模块
#opcontrol --init 

// 是否对内核进行测试(一般不测试内核)
#opcontrol --no-vmlinux

// 重置测试数据
#opcontrol --reset

// 开始
#opcontrol --start

// 运行程序(注:可执行文件编译时,需加上编译选项-g)
#./a.out

// 把收集到的数据写入文件
#opcontrol --dump

// 停止
#opcontrol --stop

// 关闭守护进程
#opcontrol --shutdown

// 卸载模块
#opcontrol --deinit

// 源码时间分析
#opannotate --source ./a.out

// 生成测试报告
#opreport -l ./a.out

—— 邹祁峰

2012.12.03

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics