IBM AIX 持续可用性: 第 8 部分

来源:互联网 发布:永恒的记忆js下载 编辑:程序博客网 时间:2024/05/01 10:36
在 AIX V6.1 中引入的 ProbeVue 功能可以执行动态的跟踪数据收集。这种跟踪功能是动态的,因为它能够从应用程序收集执行数据,而不需要修改应用程序的二进制代码或源代码。“动态” 这个词是指能够在运行时插入跟踪点,而不需要提前准备源代码。如果在源代码中插入特定的跟踪调用并定义特定的跟踪事件,就需要重新编译软件并生成新的可执行程序,这种跟踪方式称为静态跟踪功能。

您可以访问“AIX 6 资源中心”了解更多和 AIX 6 相关的资源:

  • AIX 6 资源中心

当前,在动态跟踪领域还没有标准。POSIX 只为静态跟踪软件定义了跟踪标准,参见 IBM Redbooks

publication IBM AIX Version 6.1 Differences Guide(SG24-7559)的第一章。因此,在制定动态跟踪标准之前,在 ProbeVue 和其他 UNIX 动态跟踪功能之间无法兼容。

动态跟踪的好处和局限性

软件调试常常被认为是在开发系统或测试系统上执行的一项专门任务,这些系统尝试模拟真实的客户生产系统。

但是,由于硬件功能和软件工程最近的发展,这种定义现在已经过时了;这些发展包括:

  • 高端服务器的处理能力和内存能力以及相关的存储技术已经大大增强,这使大型系统可以投入生产环境。
  • 系统集成商开发的专有解决方案(例如,基于 ERP 软件的解决方案)实现了许多中间件和几个应用程序层,这也有助于扩大生产系统的规模。
  • 现在的软件大多是多线程的,在许多处理器上运行。因此,根据执行线程的次序不同,两次运行的表现可能不一样:多线程应用程序一般是非确定性的。对于这样的软件,错误现象更难重现和调试。

因此,在当今的 IT 基础结构中,如果不能在生产系统本身中执行故障排除,判断问题的根源就会极其昂贵和困难。

ProbeVue 动态跟踪功能提供了在生产系统上检查问题的方法。ProbeVue 可以捕捉执行数据,而不需要安装专门用于调试的应用程序版本,因此不需要重新启动应用程序或重新引导服务器,不会中断服务。

另外,ProbeVue 有助于寻找在长期运行的作业上发生的错误根源;对于这种作业,异常累积的数据、队列溢出和应用程序或内核的其他缺陷常常在运行许多天或几个月之后才会暴露出来。

只要有可用的探测管理器,ProbeVue 就能够检查任何种类的应用程序,所以这种特殊的跟踪工具能够分析复杂的缺陷,比如由于多个子系统之间相互影响产生的故障。只需使用 ProbeVue 这一种跟踪工具,就能够对生产系统进行统一的检查。

请注意下面这些与 ProbeVue 相关的因素:

  • 跟踪可执行程序而无需修改它,这要求用一个控制执行层封装二进制代码。控制执行层会在跟踪点上中断主代码并启动检查代码,从而支持上下文跟踪。通过一个解释器执行被检查的代码,以防止代码中的错误影响应用程序或内核。解释器语言比编译的语言慢;所以,动态解释的跟踪点可能比静态编译的跟踪点慢。
  • 系统管理员和系统集成商需要深入了解应用程序的体系结构,仅仅了解跟踪工具是不够的。如果没有正确设置跟踪点和操作,那么软件检查可能是无效的(还可能会让应用程序更慢)。另外必须记住,在开发阶段越早进行应用程序调试,就越有效,因为软件开发人员更了解应用程序体系结构的内部情况。

由于这些原因,ProbeVue 是一个补充静态跟踪方法的跟踪工具,它可以在正在运行的生产系统中添加新颖的跟踪功能。





回页首

ProbeVue 动态跟踪的好处

作为一种动态跟踪功能,ProbeVue 的主要好处如下:

  • 跟踪钩子不需要预编译。ProbeVue 检查未经修改的内核和用户应用程序。
  • 在动态地启用之前,跟踪点或探测并不生效(不存在)。
  • 在启用探测时,动态地提供在探测点上执行的探测操作(由检查代码指定)。
  • 在探测操作中捕捉的跟踪数据可以立即显示在终端输出中,也可以保存到文件中供以后查看。

可以使用 ProbeVue 进行性能分析和问题调试。ProbeVue 可以在生产系统中安全地运行,并对检查代码中的错误提供保护。

随后介绍了ProbeVue 使用的一些术语。后续小节介绍 ProbeVue 使用的编程语言 Vue 和用来启动跟踪会话的 probevue 命令。





回页首

ProbeVue 术语

ProbeVue 引入了一些与动态跟踪概念相关的术语。下面的列表描述 ProbeVue 使用的术语。

探测(probe)

探测是一种软件机制,它中断正常的系统操作,执行检查并获取关于当前上下文和系统状态的信息。这常常也称为跟踪(tracing)。

跟踪操作(tracing action)或探测操作(probe action)

这两个术语都是指探测所执行的操作。通常情况下,这些操作包括捕捉信息,即把全局信息和与上下文相关的信息的当前值写到跟踪缓冲区中。获得的信息(即捕捉到跟踪缓冲区中的信息)称为跟踪数据(trace data)。系统常常提供使用跟踪的功能;也就是,读取跟踪缓冲区中的数据并把数据提供给用户。

探测点(probe point)

探测点表示在正常系统活动期间可以探测的位置。在使用动态跟踪时,除非对探测点启用探测,否则探测点中不安装任何探测。

  • 启用探测(enabling a probe)就是把一个探测附着到探测点上。
  • 禁用探测(disabling a probe)就是从探测点中删除探测。
  • 触发探测(triggering/firing a probe)是指进入探测并执行跟踪操作的条件。

ProbeVue 支持两种探测点。

探测位置(probe location)

这是用户代码或内核代码中的一个位置,在此位置上会执行某些跟踪操作(例如,捕捉跟踪数据)。如果在一个探测位置上启用了探测,那么当任何线程执行的代码到达此位置时,就会触发探测。

探测事件(probe event)

这是一个抽象事件,当发生此事件时,执行某些跟踪操作。探测事件不能简便地映射到某一代码位置。如果启用表示为探测事件的探测,那么当发生这个抽象事件时,就会触发探测。

ProbeVue 还按照探测类型区分探测点。

探测类型(probe type)

这表示一组具有相同性质的探测点;例如,在进入和退出系统调用时触发的探测,或者在更新系统统计数据时触发的探测。

按照探测类型区分探测,就为各种探测点建立了一个结构。因此,ProbeVue 需要与每个探测类型相关联的探测管理器。

探测管理器(probe manager)

这种软件代码定义具有相同探测类型的一组探测点(例如,系统调用探测管理器)。





回页首

Vue 编程语言

Vue 编程语言用来向 ProbeVue 提供跟踪规格说明。Vue 编程语言常常简称为 Vue 语言或 Vue。

Vue 脚本或 Vue 程序就是用 Vue 编写的程序。可以使用 Vue 脚本:




本文转自IBM Developerworks中国

      请点击此处查看全文

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 不爱吃主食爱吃零食怎么办 猫咪奶涨的很硬怎么办 斩魂技能乱加的怎么办 狗狗不吃东西还拉稀怎么办 狗狗拉稀不吃饭怎么办 狗狗几天不吃东西怎么办 狗狗不吃不喝怎么办 拖鞋洗了有臭味怎么办 拖鞋湿水了很臭怎么办 棉被上渗了酸奶怎么办 酸奶弄在衣服上怎么办 孩子把褥子尿湿怎么办 小孩尿过的褥子怎么办 包包放着发霉了怎么办 被套盖久了发黄怎么办 小白鞋里面发霉怎么办 棉被淋了一点雨怎么办 苹果手机被拉进电话群怎么办 墙上的插座烧了怎么办 富士康早退4分钟怎么办 我老婆起泡疹腿剌痛睡不着了怎么办 oppo耳机孔坏了怎么办 魅族耳机口坏了怎么办 控制线的报验资料怎么办 人失踪报警派出所不管怎么办 铁板的货架久了怎么办 干镀锌让环保查了怎么办 水管软管生锈了拧不动怎么办 镀锌管会生锈吗.怎么办 冷镀锌钢管生锈了怎么办 卖了过期的东西怎么办 喝到了假的饮料怎么办 烧汤总是溢锅怎么办 脚踩垃圾桶坏了怎么办 连衣裙特别容易起褶怎么办 施肥过度烧根了怎么办 农作物施用尿素发生肥害怎么办? 水稻尿素施多了怎么办 花施肥施多了怎么办 玉米被化肥烧了怎么办 撒施复合肥没有充分融化怎么办