工作环境是suse11sp3系统(内核版本3.0.101-0.47.90-default),需要通过perf排查系统性能问题,但是默认是没有perf工具的。

在网上搜索了一下,需要linux-tools工具包,幸好手上有SUSE11sp3 ISO文件,直接在ISO的suse/x86_64目录下

找到了perf-3.0.76-2.10.31.x86_64.rpm 安装包。

尝试安装了一下,报错:

# rpm -ivh perf-3.0.76-2.10.31.x86_64.rpm
error: Failed dependencies:
    libnewt.so.0.52()(64bit) is needed by perf-3.0.76-2.10.31.x86_64
    libnewt.so.0.52(NEWT_0.52)(64bit) is needed by perf-3.0.76-2.10.31.x86_64
    libslang.so.2()(64bit) is needed by perf-3.0.76-2.10.31.x86_64
    libslang.so.2(SLANG2)(64bit) is needed by perf-3.0.76-2.10.31.x86_64

继续在网上搜索libnewt相关的软件包(关键词: libnewt which package),找到如下链接:

http://www.linuxfromscratch.org/blfs/view/svn/general/newt.html

注意阅读该网页信息,newt依赖于popt和slang,这两个package必须先按照,否则newt编译出错。

slang and popt URL:
    http://www.linuxfromscratch.org/blfs/view/svn/general/slang.html
    http://www.linuxfromscratch.org/blfs/view/svn/general/popt.html

popt、slang和newt的编译和安装过程不再赘述,网页上都有详细说明。

 

安装了libnewt和libslang后还是报错,检查了系统LD_LIBRARY_PATH,路径都正确,而且检查有相关lib文件:

  # ll /usr/local/lib/libnewt.so
  lrwxrwxrwx 1 root root 15 Dec 26 19:37 /usr/local/lib/libnewt.so -> libnewt.so.0.52
  # ll /usr/local/lib/libslang.so      
  lrwxrwxrwx 1 root root 13 Dec 26 19:36 /usr/local/lib/libslang.so -> libslang.so.2

  # echo $LD_LIBRARY_PATH
  /usr/lib:/usr/local/lib:/usr/lib64:/lib:/lib64:/usr/local/lib64:/home/zxagent/lib/usr/lib64:/lib:/lib64:/usr/local/lib64

  实在没辙了,直接强行安装perf:

  rpm -ivh perf-3.0.76-2.10.31.x86_64.rpm --nodeps

  安装完成后,检查perf是否成功:

  # which perf
  /usr/bin/perf

  执行perf命令:

perf top -e cycles:k

PerfTop:    1612 irqs/sec  kernel:99.9% us: 0.1% guest kernel: 0.0% guest us: 0.0% exact:  0.0% [1000Hz cycles],  (all, 32 CPUs)
--------------------------------------------------------------------------------------------------------------------------------------------

samples  pcnt function                  DSO
             _______ _____ _________________________ __________________________________________________

8773.00 55.6% intel_idle                /lib/modules/3.0.101-0.47.90-default/build/vmlinux
             1356.00  8.6% find_busiest_group        /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              267.00  1.7% __schedule                /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              258.00  1.6% _raw_spin_lock            /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              209.00  1.3% cpumask_next_and          /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              179.00  1.1% find_next_bit             /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              136.00  0.9% cpuidle_idle_call         /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              123.00  0.8% native_write_msr_safe     /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              110.00  0.7% menu_select               /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              106.00  0.7% apic_timer_interrupt      /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              105.00  0.7% tick_nohz_stop_sched_tick /lib/modules/3.0.101-0.47.90-default/build/vmlinux
              105.00  0.7% cpupri_set                /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               98.00  0.6% update_curr_rt            /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               97.00  0.6% load_balance              /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               87.00  0.6% __hrtimer_start_range_ns  /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               86.00  0.5% select_nohz_load_balancer /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               82.00  0.5% leave_mm                  /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               74.00  0.5% __switch_to               /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               73.00  0.5% idle_balance              /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               73.00  0.5% getnstimeofday            /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               72.00  0.5% timerqueue_add            /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               71.00  0.4% read_tsc                  /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               69.00  0.4% do_select                 /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               69.00  0.4% hrtimer_interrupt         /lib/modules/3.0.101-0.47.90-default/build/vmlinux
               67.00  0.4% core_sys_select           /lib/modules/3.0.101-0.47.90-default/build/vmlinux

   perf可用,也算安装成功了!

   PS:

您的支持是对博主最大的鼓励

SUSE11sp3 perf工具安装过程的更多相关文章

  1. 虚拟机Tools工具安装过程

    1.选择:“虚拟机” >>> “安装VMware Tools” 在主机上,从 Workstation Pro 菜单栏中选择虚拟机 > 安装 VMware Tools. 如果安装 ...

  2. Linux学习笔记(1)Linux虚拟机安装过程中的知识点及常用管理工具

    1. VMware的相关知识 (1)建议的VMware的配置: CPU 主频1GHz以上 内存 1GB以上 硬盘 分区空闲空间8GB以上 (2)VMware创建快照 快照的作用是保存虚拟机的现有状态, ...

  3. Hadoop集群中pig工具的安装过程记录

    在Hadoop环境中安装了pig工具,安装过程中碰到了一些问题,在此做一下记录:   主要安装流程参考:http://www.cnblogs.com/yanghuahui/p/3768270.html ...

  4. centos7-sar工具的安装过程及其简单应用

    一.sar工具安装 1.进入yum配置文件目录: cd /etc/yum.repos.d/ 2.vi CentOS-Base.repo命令创建文件CentOS-Base.repo 文件内容见网页:ht ...

  5. 离线微博工具Open Live Writer(Windows Live Writer)安装过程及server error 500错误解决

    必备条件: .net framework 3.5框架(大概是要求3.5或以上,不确定,好像没有人遇到和这个相关的问题) 2017年7月27日最新官方版0.6.2英文离线客户端网盘下载(官网的安装包无法 ...

  6. 性能分析工具VisualVM for eclipse安装过程总结

    Java VisualVM Java VisualVM is a tool that provides a visual interface for viewing detailed informat ...

  7. webstorm下载&&安装过程&&打开项目

    一.webstorm下载 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HT ...

  8. RabbitMQ 集群安装过程详解

    一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...

  9. LNMP安装过程

    LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独 ...

随机推荐

  1. Python学习:函数式编程(lambda, map() ,reduce() ,filter())

    1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...

  2. C#,调用dll产生 "尝试读取或写入受保护的内存 。这通常指示其他内存已损坏。"的问题

    由于易语言与c#做的DESC加解密方式,返回的数据不一致,所以,我用易语言写了一个dll,供c#调用, 结果在post的时候,有时候能正确返回数据,有时候则不能正常返回,而是返回空数据(c#没有做异常 ...

  3. MVC5 方法扩展

    public static MvcHtmlString DataDictionaryDropDownList(this HtmlHelper htmlHelper, string name, obje ...

  4. Java 锁的学习

    个人学习整理,所有资料均来源于网络,非原创. 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用.请求与保持条件(Hold and wait):已经得 ...

  5. Selenium常用方法

    Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击.下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬.对于一些JavaScript动态渲染的页面来说 ...

  6. 如何检查tensorflow环境是否能正常调用GPU

    检查keras/tensorflow是否正常调用GPU代码 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os. ...

  7. [UE4]插值interp

    插值 在两个数之间补充一些数,让过渡变得更自然. UE4引擎提供的插值 一.CInterp To:颜色(Color)插值.C:Color,颜色. 二.FInterp To.FInterp To Con ...

  8. Python基础之re模块

    什么是模块? 为了编写可维护的代码,我们把很多的函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,在Python中,一个.py文件就称为一个模块 ...

  9. 关于vim的常用操作

    vim常用操作和使用技巧 vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技 ...

  10. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...