<% if session("name")<>"" then response.write("当前用户:"&session("name")) response.write("  注销") response.write("  修改资料") else if request.cookies("name")<>"" then response.write("当前用户:"&request.cookies("name")) response.write("  注销") response.write("  修改资料") end if end if %>
首页 >经验与观点>技术管理 >应用性能管理-从操作系统做起

应用性能管理

 
  • 在服务器端进行数据库审计的优势
  • 服务器端审计工具与所谓非侵入性审计工具的比较
  • 如何提升运维管理
  • ITIL提升中国电信运维管理系统建设
  • 提高Java性能的几个高效用法
  • 提高J2SE性能的代码技巧(上)
  • 提高J2SE性能的代码技巧(下)
  • 应用管理的概念和流程
  • 应用管理的运营和优化
  • 开源时代:Navicat实现从MS SQL到MySQL的数据迁移
  • 使用Navicat导入数据到MySQL
  • 单元测试中贯彻持续性能管理
  • 单元测试性能分析报告
  • 利用Hyperic HQ管理WebLogic
  • Hyperic HQ监测Linux系统10条最佳成功经验
  • 什么是服务等级管理
  • 服务等级管理的步骤
  • 服务等级管理中的关键控制要素
  • 服务等级管理中需要注意的几个问题
  • 什么是容量管理
  • 容量管理的几个重要环节
  • 容量管理中的关键控制要素
  • 容量管理中需要注意的几个问题
  • 持续性能管理的先决条件
  • SQL Server调优的五个步骤(上)
  • SQL Server调优的五个步骤(下)
  • J2EE性能问题的分析
  • J2EE性能问题的诊断
  • J2EE性能问题的诊断示例
  • 应用性能管理-从操作系统做起
  • SQL Server常见性能问题的优化
  • 应用性能管理(APM)的价值分析
  • Bea WebLogic Portal的性能监测和诊断
  • 数据库性能基准的五个问题
  • Portal的性能挑战
  • 在多种数据库环境下管理业务需求(下)
  • Oracle DBA如何管理DB2(下)
  • 在多种数据库环境下管理业务需求(上)
  • Oracle DBA如何管理DB2(上)
  • SQLServerSQL调优技巧
  • 诊断应用数据库的性能瓶颈
  • Oracle优化的五个方面
  • Microsoft的优化SQL方法
  • 理解SQL Server的SQL查询计划
  • 自动化性能测试
  • 优化应用质量和性能,支持和推动业务发展
  • 从PMO到CIO办公室—PMO的发展趋势
  • 实施自动化功能测试的解决方案
  • 软件自动化测试流程
  • 测试自动化的成功经验
  • 无计划的变化导致的IT风险
  • 降低无计划的变化导致的IT风险
  • 应用性能管理中的价值链分析
  • 应用系统"亚健康"的严重性
  • 应用系统"亚健康"现象和原因
  • 性能测试的准备
  • 性能测试的六个阶段
  • 性能测试的容量评估
  • 优化DB2数据库的十个最佳实践
  • 优化DB2数据库的十个最佳实践(续)
  • 在生产中监测和优化J2EE应用性能
  • 改善J2EE性能和用户体验的管理变革
  • 跟踪数据库性能变化
  • 优化ERP应用
  • 在生产中测量J2EE应用性能
  • Oracle SQL性能优化技巧1
  • Oracle9i查询优化工具初探
  • APM的方法和技术实现
  • J2EE性能问题的症状和优化
  • 构造高性能J2EE应用10个技巧
  • 软件工程与知识管理

     
  • 采用CASE工具管理多个并行应用软件开发项目
  • "软件工程"中的分工有效吗?
  • 实施知识管理软件的几个细节
  • 拯救知识管理
  • 知识管理与知识管理软件
  • IT培训师指要
  • 推荐产品的使用

     
  • Toad快速入门
  • PerformaSure J2EE性能诊断
  • PerformaSure J2EE健康检查示例
  • Spotlight实时诊断WebSphere Server实践
  • Spotlight实时诊断WebLogic Server实践
  • JProbe实践之"性能瓶颈"
  • JProbe实践之"短期对象循环"
  • JProbe实践之"内存泄露"
  • JProbe实践之"代码覆盖"
  • Quest Jprobe最佳实践(上)
  • Quest Jprobe最佳实践(下)
  • Foglight-APM与SLA的有力武器




  •  应用性能管理-从操作系统做起


            www.InnovateDigital.com 整理

          引自《网络世界》


          我们知道,IT人员其实非常痛恨升级到新的服务器或更换到新的软件体系架构之上,因为这会面临很多风险,同时也需要花费大量的时间和精力。APM能够精确地衡量系统运行环境,通过这些工具提供深层次的信息并应用分析技术,帮助企业节省需要更换系统的大量成本。

          随着应用的不断增多,用户需要建设具有应用感知的基础设施,IT人员承担不起使用重复的工具来处理应用性能的费用。APM必须成为基础设施的组成部分,它不能是一种事后的补救措施,或利用安装在基础设施上面的分离的产品来解决,从最基础的操作系统做起,是成功之路。

          应用性能管理(APM)能够为用户提供一种极有价值的预算规划或故障解决手段,但要想获得成功,用户必须从自己的操作系统开始着手。

          APM在某种程度上很像体育锻炼:每个人都知道自己需要它,但很少有人能够坚持下来,因为总是会有人因为高昂的成本和冗长的开发周期而打退堂鼓。

          今天,人人都讲求事半功倍,但是,只有我们能够在更近的距离上仔细观察APM,我们才会获得丰硕的回报。APM解决方案都由计数器支持(包括现有的计数器和客户定制的计数器)。APM可对各项参数进行监视,包括CPU占用率、内存消耗量以及网络吞吐量等。其中多数还包括一些类型的分析组件,用来解释计数器数据、重点标示和记录差异日志,以及触发报警等。分析后的APM数据才能被用来管理容量、解决故障问题、确保性能水平,甚至可以计划未来的增长等内容。

          今天的IT人员能够掌握丰富的各种工具和资源,并了解系统底层的运行情况究竟如何。在本文中,我们将探讨APM技术的现状,以及与其相关的三种主要操作系统平台:Microsoft Windows Server、Sun Solaris和Linux。每种操作系统在跟踪应用运行状态时所采用的方法和手段均有所不同,因此用户必须对各自的APM战略进行调整,从而适用选定的操作系统平台。


    计数器无所不在

          任何APM解决方案的核心都是计数器。这些计数器都在系统最核心的部位工作,在运行环境内部最隐蔽的角落中监视着各种关键数据。无论是编入操作系统的核心还是位于虚拟机的类库中,计数器都可以实现对整个系统范围内的应用性能管理。

          计数器还可以让人们了解操作系统开发人员的许多思维方式。例如,Solaris操作系统提供了丰富的计数器功能,让用户能够探索Sun自有硬件的内部工作情况,而Windows也通过一个中心库(性能数据帮助,PDH DLL)提供了大量系统及应用计数器,即使是一般的编程人员也能对这些内容进行访问。

          目前,越来越多的APM开始采用基于浏览器的应用构架,这也为APM提供了一个新的层次:Web应用服务器。Web应用服务器强调的是代码的可移植性和平台的抽象性(通过上面提到过的虚拟机模型),因此Web应用服务器要求其自己的仪器设施尽可能不与主机操作系统相互依赖,因而使得APM变得更为复杂。

          随着复杂性的螺旋式上升和IT业界在管理并行APM架构时面临更大的挑战,各厂商都在努力寻求新的解决途径,使自己的解决方案能够将这些离散的资源整合在一起,而且不需要强迫客户寻求第三方的帮助。这种思路也正在迅速成为一个非常关键的APM卖点。

          那么,用户又如何衡量选用的APM解决方案呢?以下是应当考虑的三个要点:部署成本(时间和精力,当然还有金钱)、易用性以及APM功能。而且这三项因素必须放在一起,并与操作系统平台相互参照,才有可能形成最佳的解决方案。


    Microsoft Windows Server系统:单一捆绑、垂直集成

          长期以来,将诸多功能捆绑在操作系统中已经成为微软产品的一项传统。APM当然也不例外。Windows Server平台本身具备非常丰富的计量计数功能。从NT Executive 的内核到最隐蔽的运行子系统(例如"缓存读取命中率"),每项组件和内容都有一个计数器。

          比计数器数量更为重要的是,微软允许其他开发人员使用这些功能。在.Net 框架之前的那些传统Windows应用中,微软提供了PDH库。这是一个单点式参考库,能够访问整个操作系统的计量计数器。事实上,几乎所有主要的子系统都有各自的表达项目,而且Windows开发人员可以非常轻松地扩展其自己的应用,并利用PDH接口来获得定制的计量内容。

          PDH也被图形化的PerfMon (性能监视器)应用使用,这一监视器应用是Windows操作系统核心的一部分,能够以图表和日志方式记录数据。

          随着.Net框架的出现,微软扩展了其无处不在的计量模型,将其引入了Web应用服务器的领域中。所有的框架操作,从CLR (通用语言运行环境) 虚拟机的JIT (Just in Time) 编译器到ASP .Net Web服务库,所有的组件都具备完整的计量仪表系统,并可供开发人员使用,其实现的途径既有传统的PDH库,又有更新的WMI (Windows管理工具)接口。

          此外,当微软的ETW (用于Windows的时间追踪) 解决方案于今年正式推出时,将能够追踪应用的执行路径,并了解其跨越本地和网络边界(但不包括Web服务边界)的情况,而且这种跟踪根本不用考虑其下层的开发模型究竟是什么。

          这种双向式的APM支持实现传统操作系统与当前新一代Web应用服务器资源之间的紧密集成,从而帮助微软赢得开发人员社团的支持与拥护。


    Linux:多方努力、水平集成

          如果Windows Server系统代表的是单一厂商APM集成,那么Linux利用其特有的交换和分布式开发方式,代表的就是完全相反的一极:由DIY精神支撑起来的,但有时也有些混乱的虚拟背景。

          可以肯定的是,如果您真的需要虚拟APM解决方案,则肯定能够找到ISM的PerfMan for Linux 和IBM的Tivoli解决方案。但是,即使是这些大厂商的工具是在那些基本应用程序的基础上构建起来的,同样也融合了Linux社团的共同努力。

          例如,PerfMan是一种功能强大的商用计量跟踪和分析解决方案,利用sysstat编写而成。后者是一种用于Linux/proc虚拟文件系统的开放源代码命令行前端。同时,IBM的Linux性能计划在很大程度上是从OProfile演化而来的,这是一种开放源代码内核驱动/探测应用。

          与应用服务器和数据库类别(两者都是由一线厂商利用传统方式开发出来的,而且支持良好,价格高昂)不同的是,APM有很多都是由开放源代码社团开发出来的。如果只需要让Linux为自己的目的服务,那么它将是一个极好的选择,因为上面提到过的所有开放源代码工具都属于GNU的范畴。但如果需要的是在多层运行环境中的连贯性,那么Linux的吸引力就要大打折扣。

          大规模的Linux项目中,多数都要用到一种或多种第三方的Web应用服务器平台。因此,尽管厂商可以为其各自的环境提供丰富的APM工具,但这些工具仍然对操作系统底层的情况了解得少之又少。同样,操作系统一级的APM工具,如sysstat,又对Web应用服务器一层的情况知道得很少,因为它只知道那是一种可以使用/proc虚拟文件系统进行跟踪的进程。

    Sun Solaris:中间路线的代表

          在一方面,Sun既是开放源代码的支持者:Java关键技术的拥有者、异构Web标准的倡导者和Linux的拥护者。在另一方面,Sun是典型的老牌大厂商:提供众多强大的功能,但其关键部分又是与专有的硬件平台密不可分的。

          例如,Sun在其操作系统平台中推出了功能强大的全新APM解决方案--Sun Solaris 9 Resource Manager。Resource Manager是任何IT规划者的梦想;它可以针对应用资源使用情况提供详细的反馈,允许系统管理员出于系统健康分析的目的审查运行时行为。在与Sun开发环境协同使用时,Resource Manager可以提供连贯的端对端APM解决方案集,适合Solaris和J2EE应用类型。

          但是,仍然有一个问题。两种产品最初时只能在Sun的Sparc处理器平台上使用,这意味着您不得不在公司的软件和硬件这两个方面投资,也只有这样才能发挥出APM的完整优势。不过好在从Solaris 9之后的版本中,Resource Manager跟着Solaris被移植到了x86平台上使用。

          同时,在评估Sun的APM策略时还需要考虑到那些不可见的专有系统关联。对于Sun来说,它既要努力使自己适应开放源代码领导者的角色,又要保持高利润大型硬件的优势,这对它来说无异于一项重大的挑战。

    构建一套APM策略

          APM连贯性最强的平台也会在经济上具有极大的实际意义。微软在这方面无疑有优势,这要在很大程度上归功于微软在操作系统中捆绑额外功能的特殊偏好。

          但是基本的操作系统功能只是APM天平上的一部分。在许多情况下,用户已经拥有的平台情况比较复杂。例如许多用户都拥有大量的传统Unix计算机,而微软的以Windows为中心的模型就不会有多大的作为。所以,单一厂商解决方案在这种情况下竞争力自然就不会很强。

          当然,我们这次探讨的APM还主要是局限于单一操作系统这个层次,而更高层应用以及异构环境的用户占据大部分市场,这就需要大量的第三方APM工具以弥补这些不足。


    (北京铸锐数码科技有限公司 www.InnovateDigital.com)


     
    北京铸锐数码科技有限公司 版权所有 © 2008
    中国·北京市海淀区大钟寺13号华杰大厦8A9-2室
    邮编 100098 电话 010-62139280 传真 010-62135268    京ICP备05019494