• 研究性能测试工具之systemtap入门指南(一)


    引言
    部门对功能的要求很高以外,对性能的要求也越来越高。从最初的接口性能测试,到现在的Web应用性能测试,研究院集采性能测试在不断向前发展,横向、纵向都不断深入、拓宽,不断积累经验与创新。一个应用的性能由多方面因素决定,这样就增加了性能测试和性能调优的难度,也扩大了性能测试的广度,这是一个挑战。需要各个测试人员提高专业技能,扩展视角,最终打造一个专业的团队。
     参与执行好多性能测试,常常会出现各种问题,随着系统复杂度提升,解决问题随着更加艰难。经常有人曰:"出此现象,何哉?",很多情况不知从何入手,反思如何解决。作为性能测试人员主导整个性能测试过程,更想知道为什么会出现奇怪的现象。从操作系统内核着手学习,能够更好地完成性能,让更多的人更好地了解性能测试和性能调优,参与性能测试,共同将互联网的产品做得更大、更强,更稳定,并且期望部门的性能测试能成为电信性能测试业界的标准。

    概述
    SystemTap 是监控和跟踪运行中的 Linux 内核的操作的动态方法。这句话的关键词是动态,因为 SystemTap 没有使用工具构建一个特殊的内核,而是允许您在运行时动态地安装该工具。SystemTap 与一种名为 DTrace 的老技术相似,该技术源于 Sun Solaris 操作系统。在 DTrace 中,开发人员可以用 D 编程语言(C 语言的子集,但修改为支持跟踪行为)编写脚本。DTrace 是 Solaris 最引人注目的部分,所以在其他操作系统中开发它并不奇怪。考虑到 DTrace 和 ProbeVue 在各自的操作系统中的巨大作用,为 Linux 操作系统策划一个实现该功能的开源项目是势不可挡的。SystemTap 从 2005 年开始开发,它提供与 DTrace 和 ProbeVue 类似的功能。许多社区还进一步完善了它,包括 Red Hat、Intel、Hitachi 和 IBM 等。
    SystemTap 提供了一个基础平台,简化了收集Linux 内核运行时信息的工作,便于进一步的分析。这些分析有助于我们识别性能或功能问题的根本原因。SystemTap 设计的初衷是使开发人员从原本需要重编译,安装和重启等过程才能收集到这些数据的乏味工作中解脱出来。SystemTap 提供一个简单的命令行界面和编写内核测量仪(kernel instrumentation) 的脚本语言。有了SystemTap ,开发人员,系统管理员和用户可以很方便地编写脚本来收集和操纵内核数据,这是其它使用标准Linux 工具等方法所不能及的。与旧的方法相比,SystemTap 的出现是一个显著的进步。

    如何安装SystemTap
    1、 确定linux版本(必须使用root权限)
    [root@BL480-64 ~]#uname -a
    Linux BL480-64 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

    2、 redhat5企业版自带systemtap工具,需要安装三个linux内核包
    下载地址:ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/
    下载以下rpm安装包:
    a) kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm
    b) kernel-debuginfo-2.6.18-128.el5.x86_64.rpm
    c) kernel-devel-2.6.18-128.el5.x86_64.rpm
    [root@BL480-64 ~]#rpm -hiv kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm
    [root@BL480-64 ~]#rpm -hiv kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm
    [root@BL480-64 ~]#rpm -hiv kernel-debuginfo-common-2.6.18-128.el5.x86_64.rpm

    3、 测试systemptap是否安装成功
    [root@BL480-64 ~]# stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'
    Pass 1: parsed user script and 45 library script(s) in 340usr/0sys/358real ms.
    Pass 2: analyzed script: 1 probe(s), 1 function(s), 0 embed(s), 0 global(s) in
    290usr/260sys/568real ms.
    Pass 3: translated to C into "/tmp/stapiArgLX/stap_e5886fa50499994e6a87aacdc43cd392_399.c" in
    490usr/430sys/938real ms.
    Pass 4: compiled C into "stap_e5886fa50499994e6a87aacdc43cd392_399.ko" in
    3310usr/430sys/3714real ms.
    Pass 5: starting run.
    read performed
    Pass 5: run completed in 10usr/40sys/73real ms.

    完成以上所有操作即可马上运行systemtap脚本了o(∩_∩)o…哈哈,简单吧。
    注:建议下载systemtap源码,里面有很多systemtap脚本,大部分比较实用。

  • 相关阅读:
    Windows Server 2012 R2 密钥
    C# 将List转成树的两种方式(递归、循环)
    C# 实现PPT、Word、Excel文件转为图片
    Net JavaScript:跨域问题(No 'Access-Control-Allow-Origin')
    IIS WebApi: 文件上传,大小限制,提示413 (Request Entity Too Large)
    layui动态表格数据选择添加穿梭框代码
    MySQL + Keepalived 双主热备高可用解决方案
    PHP高并发问题处理思路
    xhprof性能分析工具安装与使用
    uni-app在小程序中v-show指令失效
  • 原文地址:https://www.cnblogs.com/jinyz/p/3047395.html
Copyright © 2020-2023  润新知