热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu10.04系统安装Xen4.0.1虚拟和Xenoprof的支持

Xenoprof是HP公司针对OProfile工具开发的一个接口,它使得OProfile能够适用于基于Xen的虚拟环境,从而能够对内核、应用程序等的性能信息进行监控,在官网http://xenoprof.sourceforge.net/上有详细的介绍。Xenprof的原理是:在基于Xen的虚拟环境下,可以使

Xenoprof是HP公司针对OProfile工具开发的一个接口,它使得OProfile能够适用于基于Xen的虚拟环境,从而能够对内核、应用程序等的性能信息进行监控,在官网http://xenoprof.sourceforge.net/上有详细的介绍。

Xenprof的原理是:在基于Xen的虚拟环境下,可以使用Xenoprof建立一个profile的 session,在这个session里可以有选择性地对多个虚拟机进行profile(包括半虚拟化安装的Linux以及以全虚拟化安装的 Windows或OpenSolaris),以获取内核或应用程序的性能信息(如Cache miss, TLB miss, etc)。

 

 

具体安装过程如下:

 1. 从http://oprofile.sourceforge.net/上下载oprofile-0.9.5.tar.gz(不是Oprofile的最新版本0.9.6,Xen现在只支持到这个版本) ;

 2. 从Xenoprof官方网站http://xenoprof.sourceforge.net/上下载oprofile-0.9.5-xen.patch;

3.将oprofile-0.9.5.tar.gz与oprofile-0.9.5-xen.patch放在同一个目录。

解压oprofile并打补丁:

tar xzvf oprofile-0.9.5.tar.gz

cd oprofile-0.9.5

patch -p1 <../oprofile-0.9.5-xen.patch;

4. 执行./configure --with-kernel-support命令进行编译前的配置

期间会碰到两个错误:

configure: error: popt library not found

configure: error: liberty library not found

解决办法:sudo apt-get install libpopt-dev  binutils-dev

5. 配置好以后执行:

make

sudo make install

即可完成OProfile的安装.  

 

除此之外,还需要重新编译内核以添加对Oprofile的支持。

 

 

 重新编译Xen化内核并添加Oprofile支持

 

如果你还未安装Xen,推荐你可以将二者一起完成,安装Xen-4.0.1参见:http://www.linuxidc.com/Linux/2011-07/39259.htm

接1.4小结:

进入配置界面,加入xen的配置:

$ make menuconfig

General setup  --->

     <*> OProfile system profiling (EXPERIMENTAL)

//添加Oprofile支持

Processor type and features --->
  [*] Enable Xen compatible kernel
Networking support --->
  Networking options --->
    <*> 802.1d Ethernet Bridging
Device Drivers --->
  XEN --->
    [*] Privileged Guest (domain 0)
     <*> Backend driver support
       <*> Block-device backend driver
       <*> Block-device tap backend driver
       <*> Block-device tap backend driver 2
       <*> Network-device backend driver
       <*> PCI-device backend driver
       <*> SCSI backend driver
       <*> USB backend driver
    <*> Block-device frontend driver
    <*> Network-device frontend driver
       <*> SCSI frontend driver
       <*> USB frontend driver
    <*> Framebuffer-device frontend driver
    <*> Keyboard-device frontend driver
    [*] Disable serial port drivers
    <*> Export Xen attributes in sysfs
        Xen version compatibility (3.3.0 and later) --->
           3.3.0 and later

后面的编译配置过程按照原来的步骤来即可。

测试Xenoprof

内核重新编译,配置完成后一切安装完毕,现在我们开始测试Xenoprof:

># opcontrol --help

得到:/usr/local/bin/opcontrol: 567: Syntax error: Bad for loop variable

这需要修改文件:# vi /usr/local/bin/opcontrol 的第一行:

#!/bin/bash

 

好了现在Xenoprof可以正常运行了:

sudo opcontrol --help

opcontrol: usage:

   -l/--list-events list event types and unit masks

   -?/--help        this message

   -v/--version     show version

   --init           loads the oprofile module and oprofilefs

   --setup          give setup arguments (may be omitted)

   --status         show configuration

   --start-daemon   start daemon without starting profiling

   -s/--start       start data collection

… …

 

 

小测试一下:

$ sudo opcontrol --dump

$ sudo opreport

Overflow stats not available

CPU: Intel Architectural Perfmon, speed 2800.06 MHz (estimated)

Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (No unit mask) count 100000

CPU_CLK_UNHALT...|

  samples|      %|

------------------

     3054 60.7157 no-vmlinux

     1015 20.1789 libc-2.11.1.so

      632 12.5646 bash

      198  3.9364 ld-2.11.1.so

       74  1.4712 python2.6

       CPU_CLK_UNHALT...|

         samples|      %|

       ------------------

              73 98.6486 python2.6

               1  1.3514 [vdso] (tgid:3638 range:0x7fffe57ff000-0x7fffe5800000)

       16  0.3181 oprofiled

        7  0.1392 gawk

        4  0.0795 libgcc_s.so.1

        4  0.0795 sudo

        4  0.0795 libstdc++.so.6.0.13

        3  0.0596 grep

        3  0.0596 libpam.so.0.82.2

        3  0.0596 libpthread-2.11.1.so

        3  0.0596 opreport

        2  0.0398 libdl-2.11.1.so

        2  0.0398 libnsl-2.11.1.so

        1  0.0199 dash

        1  0.0199 ls

        1  0.0199 mv

        1  0.0199 libacl.so.1.1.0

        1  0.0199 libnss_files-2.11.1.so

1        0.0199 rsyslogd

这样就可以在Xen里面使用Xenoprof了!


推荐阅读
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • 近期,考虑到在Vim内部进行GDB调试、运行Python脚本和数据库连接等多样化需求,思考是否可以通过集成终端来简化这些操作,而非逐一编写Vim脚本来实现。通过研究发现,确实存在一种高效的方法——利用特定插件实现终端功能的整合。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • Python Django大学生心理健康管理系统开发(含源码、文档)
    本项目包含完整的源代码、设计文档、数据库结构以及详细的安装指南,旨在为计算机专业的学生提供一个全面的心理健康管理系统解决方案。 ... [详细]
  • 本文详细介绍了如何下载并安装 Python,包括选择合适的版本、执行安装程序以及设置环境变量的步骤。此外,还提供了测试安装是否成功的简单方法。 ... [详细]
  • 解决Appium Doctor在Python自动化测试中的SyntaxError问题
    本文详细介绍了如何解决在使用Appium Doctor进行环境检查时遇到的SyntaxError: Unexpected token ...问题,并提供了完整的解决方案和最佳实践。 ... [详细]
  • 本文详细介绍了钩子(hook)的概念、原理及其在编程中的实际应用。通过对比回调函数和注册函数,解释了钩子的工作机制,并提供了具体的Python示例代码,帮助读者更好地理解和掌握这一重要编程工具。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • 解决Linux history命令不记录执行时间的方法
    本文探讨了如何通过配置环境变量来使Linux系统中的history命令记录每条命令的执行时间,包括具体的配置步骤和效果展示。 ... [详细]
author-avatar
骨Zi骄傲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有