应用性能管理: 必要性、要求以及核心技术(2)

liyingcsdn 2005-04-13 04:23:49

第二章、需要具备的条件

工具箱和方法论

高效的性能管理包含两个同等重要的组成部分。首先是方法论——定义为确保系统运行于最佳状态下所必须执行的任务的过程。第二个组件是工具箱——对工具的选择,通过收集性能相关的信息用来执行这些方法。当决定应用性能管理(APM)解决方案时,关键是确保所选择的工具能够作为有效且经过验证过的方法的一部分。

实际的交易

一些性能管理解决方案依赖于模拟交易的性能评价(计算机产生的用于测试应用程序性能的周期性处理过程)的性能测试。尽管这种方式能够有效的考察系统开销,但是模拟交易无法精确的洞悉真正最终用户的操作体验或者真正的事物处理的性能。模拟交易无法检测意料之外的性能问题。当决定APM解决方案时,关键之处在于确保解决方案能够对真实系统的交易性能提供24×7的评价。

对生产环境的友好性

对于实际交易性能指标连续收集的需求往往转化为对于“生产环境友好”的解决方案的需求。该方案对被监控系统造成的开销最少。在大多数情况下,使用追踪技术获取信息的方法(典型的情况是,依赖通用API函数获取系统中所有活动的全部信息)伴随着难以承受的系统开销。避免这种问题的最有效的方法之一是使用高频率、低开销的采样技术。它提供的性能测量结果具备统计学上的精确性和细粒程度,而同时将相关的系统开销保持在较低的水平。当确定APM解决方案时,保证它自身不会对系统性能起到负面作用是颇为必要的。

即时可用工具(out-of-the-box instrument)

在大多数情况下,出于监控性能目的修改系统代码是不可能的,或者至少是不现实的。做出必要的改动并进行维护的成本很高,而且也缺乏通用的工具标准,即使这些信息大有用处,仍然使得试图采用这种方法的企业望而却步。反之,在大多数情况下,企业更倾向于使用针对已有应用的即时可用工具(out-of-the-box Instrument),这通常是一种运行于内存中的程序。当决定APM解决方案时,很重要的一点是确保无需对现有的应用做出大量改动或进行复杂的定制。

相互关联的信息

在监控复杂、多层架构应用的性能时,应用程序的数据将变得孤立(独立地呈现各层的信息)。在一些情况下,甚至层内信息也会变得孤立;例如当用户、操作系统以及应用的统计数据间没有联系的时候。当试图解决运行问题时,使层内以及层间的活动关联起来是很重要的,这样才能将故障现象与导致问题的起因联系在一起。由于层到层的处理性质的变化,与层间关联性能相关的复杂性在迅速增加。Web请求将转变为多重SQL请求(SQL是一种标准查询语言,它是在关系数据库中定义数据获取或修改查询的最通用的方式)。多重SQL请求可能转变为更多的针对存储系统的I/O请求。在某些情况下,通过使用各层间的通同标识符可以将数据关联起来;然而,在大多数情况下,需要更加一般性的关联方法。运行一个统计行为分析工具并标识出重现模式是关联层间活动的一种方法。通常情况下,这种方法可用于提供一个关于应用性能的历史视图。当决定APM解决方案时,确保应用的层内及层间的信息相互关联是非常重要的。

数据一致性

如果各种产品之间的信息不一致,利用多种工具进行性能管理将是一件非常棘手的事。报警所依赖的信息、应用所报告的信息以及分析工具所提供的信息应该保持一致性,这点非常重要。此外,如果通过关联环境启动了in-depth分析软件,各种产品能够自动完成从症状到原因的分析过程,则可以节省弥足珍贵的时间。当选择工具箱实现APM方案时,确保各种产品之间的信息一致性是至关重要的。

主动管理

处理性能问题通常导致很长的恢复时间和高昂的企业成本。有效的APM解决方案必须支持主动性能管理,必须能够在性能问题(事实上的或者潜在的)的发展初期及早识别出来并向员工发出警报信号。

分析能力

APM解决方案收集的信息必须同样支持更具预防性的分析过程。它必须有助于识别性能的负面趋势、相对于基准线的偏离、主要的调整点并能够协助性能规划。



第三章、核心技术


内存采样

内存采样是一项独特的技术,它能够使得Indepth/Oracle获取细粒度很高的Oracle性能数据,同时保持较低的系统开销。传统的方法通过跟踪和内部记录直接从数据库获取信息,Indepth/Oracle采样器与之不同,它先对Oracle SGA(共享内存区)做一个高速快照,然后将其解码,从而为应用建立起一套配置文件。因为该技术不要求真正的连接到数据库,它仅占用很少的资源,非常适合于生产环境。然而,要支持新的版本,必须对SGA有彻底的了解。

API采样

从概念上讲,Indepth/DB2和Indepth/SQL Server与Indepth/Oracle采用了相似的采样技术。然而,关键的区别是他们使用产商提供的API函数来访问信息,而不是依赖于数据库内核。该技术充分利用了二者的优点:由于采用采样技术,将开销保持在最低水平;同时不依赖于其监控的数据库内核。

常驻内存(In-Memory)工具和瓶颈隔离

为监控和分析J2EE应用的性能,Indepth/J2EE对被监控的应用使用了字节码常驻内存工具。该技术在应用中的关键入口和出口处插入特殊的检测点(hook)。这个过程不需要对应用程序做任何修改,系统开销也很低。因此,它非常适于对现有生产环境中应用程序进行24×7的监控。可以使用独特的SmarTune模块分析被监控应用的性能数据。该模块详细的研究并分析了应用的执行树,标识出系统瓶颈和调节点。

Web-Page工具

Indepth/Transactions是以最终用户为中心的产品。它根据网页加载时间监控响应时间和Web站点所遵守的SLA。很显然,在每一个访问站点的浏览器上手动安装代理是不切实际的。Indepth/Transactions采取了一种自动化的方法来实现这一目标:通过自动将特定的JavaScript代码入Web页面中实现对网页的配置。这些JavaScript代码会令浏览器下载一些很小的Java applet程序,这些小程序将记录响应时间并将其反馈给产品。该技术使Indepth/Transactions能够监控真实的Web页面响应时间,并且识别出劣质服务。

TCP监控

Insight使用TCP监控技术测量最终用户的响应时间,并且在多层架构环境中将其分解到不同服务器和网络层。高效的TCP模块被用于监控所有TCP通信流量的进出。并且,它能够从多个服务器收集信息,用其确定每一个应用层上的服务器和网络时间,同时识别出哪一项导致了最长的响应时间。从而,按照需求进行调优。

性能仓库

性能仓库是VERITAS APM解决方案 (Indepth?)的中心组件。历史性能信息通过所有的Insight和Indepth模块被加载到性能仓库。然后,通过Inform模块对这些信息进行分析,检测潜在的性能问题和性能异常。性能仓库是一个开放的数据仓库,物理上存储于诸如Oracle或者SQL Server等数据库中。对商业数据库的依靠有助于VERITAS Indepth?尽可能提高数据获取和分析的效率。如果用户希望钻取性能细节或生成他们自己的报告,它同样能够提供帮助。

应用程序与存储系统的相关关系

数据库Indepth产品的最独特功能之一是能够检测低效物理I/O所导致的性能问题。很多产品通过将数据库对象与逻辑存储数据(例如表空间和文件)关联起来识别问题的根源,而Indepth产品将与对象关联的物理存储参数细致到了存储器的扇区级别,对存储“黑匣子”提供了深入的可视性。
...全文
125 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧