分享

专家访谈: Ruth Willenborg谈WebSphere性能

 chinaquake 2006-08-05
专家访谈: Ruth Willenborg谈WebSphere性能
文章来源: 文章作者: 发布时间:2006-02-01   字体: [ ]  
 


IBM公司版权所有,2003年

照片:Ruth Willenborg

这个月我们邀请到IBM? WebSphere?性能专家 Ruth Willenborg来回答关于WebSphereApplication Server性能方面的问题,包括Version 5性能特征和调整性能的最优方法。WebSphereApplicationServer是一个基于Java的Web应用程序服务器,它构建于开放标准之上,这使得它可以帮助您部署和管理从简单的Web站点到功能强大的电子商务解决方案。Ruth Willenborg是WebSphereApplication Server Performance小组的经理。她是 Performance Analysis for Java Web Sites, Addison-Wesley, 2002的合作者。要了解更多关于WebSphere ApplicationServer的信息,请参阅 WebSphere Application Server 专区

Ruth对WebSphere Performance小组在她准备这篇文章时提供的帮助表示感谢。

问题:对于监控产品环境您有什么好的建议?ResourceAnalyzer完全停止使用了吗?什么产品代替了Resource Analyzer?( rsbohra提交)

回答:Resource Analyzer在WebSphere V5中仍然存在。但是它换了一个新的?字叫Tivoli Performance Viewer (TPV)。Tivoli Performance Viewer是免费的,它包含在WebSphere的安装中。可以参看InfoCenter中的用Tivoli Performance Viewer(以前的Resource Analyzer)"监控性能"。

对于一个完全的7×24产品监控方案,包含例如临界值警报和历史报告能力,我建议考虑Tivoli和我们合作伙伴的监控方案。要得到WebSphere监控产品列表,请参阅 WebSphere Performance Management Business Partner Solution Finder page

问题:in-memory(基于JMS)会话复制与老的基于数据库的会话相比提供了什么优势?IBM是否有JMS与基于数据库的会话之间比较的数字? (无记名提交)

回答:WebSphere V5增加了一个memory-to-memory(内存到内存)HTTP会话复制选项。这是除数据库会话复制能力之外的另一个选择。memory-to-memory会话复制能力用于提供一个高度可用性的配置选择方案,但是却不需要一个高度可用的数据库。我们并未期望在memory-to-memory方式和数据库方式之间有很大的性能差异。

到目前为止就我们实验室的研究,这两种方案的性能事实上是一样的。两种方案都要求相同的资源以序列化(serialize)会话对象并将之输出。不管您的配置选择是memory-to-memory或是数据库,提高会话复制性能的最有效技术是保持您的会话对象尽可能的小!

问题:我们有一个基于html/jsp/javabeans的Web应用程序。所有的HTML页面都有JSP内容。既然组件是用J2EE架构构建的并且部署在WebSphere 4.0.6上,当在产品环境中配置Remote HTTP Web Server和Application Server上时,分离静态和动态内容的最好策略是什么? (无记名提交)

回答:在一个WebSphere 4.0环境有多种分离静态和动态内容的策略。最好的策略依赖于您想采取的折衷,包括性能和管理的便利性。

两种选择方案包括:

  1. 由WebSphere提供所有内容(使用文件服务servlet)。
  2. 分离静态内容,部署到HTTP服务器中。

从性能角度来考虑,从HTTP服务器上直接提供所有静态内容会较快些。如果您在使用IBM HTTP服务器,同时要考虑Windows?和AIX?平台下的FastResponse Cache Acceleratort特性。

这两种选择方案,都使用一个caching proxy,在下面这篇文章中讨论, Handling Static Content in WebSphereApplication Server

当您升级到Version 5时,有一个额外的性能需要考虑。WebSphere的caching性能随一个提供到IHS加速器cache的附加链接扩展到Webserver plug-in。 在Version 5的scenario中,考虑设置WebSphere通过文件服务servlet处理静态内容的第一次请求,然后将该内容放入IHS加速器缓存中。根据静态内容的数量和大小,该选择方案可能和手动分离内容一样执行,无需对分割内容进行管理。

如果您确实在Version 5中分离静态和动态Web内容,请参阅 WebSphere Application ServerV5: Separating Static and Dynamic Content中的"Hints and Tips"。

问题:我该如何在WAS 5.0上部署一个基于Java 1.4的Web应用程序? (无记名提交)

回答:WebSphere V5.02于2003年7月发布了支持Java 1.4.1的客户机版本。然而,WebSphere V5在服务器端不支持Java 1.4。目前停留在更多对Java 1.4支持的调整阶段--我们现在有一个有限的beta版正在开发中。

问题:是否仍有一个为在进程中调用的远程接口的容器优化?我们想实现一个仅用于维护分布式选项的远程接口,但是不想影响性能。相比本地接口,Websphere惯于先在远程接口做这种优化。 (无记名提交)

回答:是的,WebSphere V5继续支持这种优化:

  1. 您可在 Servers -> Application Servers -> ORB Service下的AdministrativeConsole Page中启用它。
  2. 启用 Pass by Reference设置。
  3. 从命令行脚本(scripting),该属性是 com.ibm.CORBA.iiop.noLocalCopies

WebSphere V5也支持J2EE 1.3 Local Interfaces。在我们的实验室性能测试中,我们观察到使用Pass byReference选项有一个很大的性能提升,明确的编码到本地接口也有较小的性能提升。如果您想维护您的分布式选项,使用Pass byReference标志是一个很好的解决方案。

问题:如果我开发我自己的管理程序来监控WAS ND服务器和mbeans,对WebSphere过程的性能有何种影响?我 的Admin客户机使用SOAP/RMI连接部署管理器。 (无记名提交)

回答:您的管理程序对性能造成的影响取决于您监控的频度,和您将检索多少数据。例如,TivoliPerformance Viewer(包含于WebSphere中)使用SOAP/RMI连接部署管理器。在我们的实验室测试中,同时启用PMI数据和通过SOAP/RMI访问数据对性能所造成的额外开销也仅仅是3%。这是采用PMI标准水平并且同时运行TPV每10秒监控一次PMI数据。

如果您正在访问PMI性能数据,我们的实验室测试显示在一次调用中检索所有信息比使用多次远程JMX调用要好。例如,如果您想取得所有servlet的PMI数据,尽量调用一次PerfMBean访问所有servlet,而不是对每个servlet做一个单独的调用。

回答:为什么会有两个不同的Performance Advisor(性能顾问)? (无记名提交)

回答:WebSphere 5.02提出了两个Performance Advisor,一个嵌入在Tivoli Performance Viewer中的Performance Advisor和一个Runtime Performance Advisor。如何使用和什么时候用这两个Advisor是不同的。

Runtime Advisor运行于应用程序服务器进程中,它发布建议作为标准的WebSphere警告消息的一部分。这些建议用于协调WebSphere资源以优化性能。您可以在压力测试或在产品中使用该Advisor。管理员 负责检查这些调整警告消息然后根据建议作出修改。

Tivoli Performance Viewer Advisor设计成用于请求,它与TPV协同工作。它最适合用于测试和调整您的应用程序。您可以在您的测试期间的不同点处显式的请求调整建议。您还可以在不同点处运行顾问(advisor)以捕获并重现一个日志。TivoliPerformance Viewer使用一个由Runtime Advisor提供的建议的超集。两个Advisor都为WebSphere资源提供调整建议,例如pools和caches。对于那些计算代价昂贵的(因此不适合与在运行时经常运行)建议只在TPVAdvisor中使用。

问题:什么样的用于查看性能的PMI度量是最好的?

回答:PMI有超过100中不同的性能度量。当查看性能时,我喜欢从四个关键域开始:系统性能、应用程序性能、WebSphere中的工作流和JVM性能。在这点上我认为应该考虑的"Top10"是:

系统性能(您可以在操作系统实用程序中得到)

  • CPU
  • I/O
  • Memory (页)

应用程序性能

  • Servlet/EJB响应时间
  • Servlet/EJB请求
  • 有效的HTTP session

WebSphere中的工作流

  • Web服务器线程(您要从HTTP服务器上得到这个,而不是PMI)
  • Web容器线程池,ORB线程池
  • Database连接池

JVM性能

  • JVM堆(用于潜在的内存漏洞和动态垃圾收集)

问题:度量性能的最好实用方法是什么? (无记名提交)

回答:最好的度量性能的实用方法包括:

  1. 在稳定状态进行度量(不要包含ramp-up/ramp-down时间)。
  2. 每次只作一处改变然后在作出改变之后重复测试。
  3. 确信您的结果是可重复的。不要依赖于单次运行的数据。典型情况下您应该至少运行3次以确保您得到的结果是一致的。
  4. 您的运行时间应该足够长以确保得到可重复的结果(典型的10-15分钟)。调查各次之间的大的差别并保持两次运行之间的差别低于4%。
  5. 在一个孤立的网络上测试。

我们的书 Performance Analysis for Java Web Sites包含性能测试的最佳使用方法和工具。需要特别关注第7、8、11章和附录中的清单。

相关信息

关于专家访谈

Meet the Experts

是WebSphere开发者园地每月一次的活动。在这儿您可以接触到IBMWebSphere的核心人物及产品专家,他们随时准备为您排疑解难。您可以提出任何问题,我们将会对其中比较具有普遍性的问题在这儿给予回答。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多