热门标签 | 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了!


推荐阅读
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
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社区 版权所有