BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

IBM架构师谈SPECj创纪录测试结果和基准化进程

| 作者 Bryan Clauser 关注 0 他的粉丝 , Scott Delap 关注 0 他的粉丝 ,译者 王军 关注 0 他的粉丝 发布于 2007年11月14日. 估计阅读时间: 12 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
IBM近期在用于进行高容量事务处理测试的行业基准上,以高出竞争对手37%的优势脱颖而出。这种高容量事务处理在当前客户环境中相当具有代表性。IBM 的WebSphere应用服务器在SPECjAppServer2004性能和可伸缩性的测试数据结果中达到了一个新的高度。[译者注:由SPEC创立的SPECj AppServer 2004 基准测试专门设计用于测量JEE应用服务器的性能]。

InfoQ与Andrew Spyker和John Stecher就该测试结果进行了交流。Andrew Spyker是负责IBM WebSphere应用服务器性能团队的高级技术员。Andrew过去一直致力于研究Web Services和SOA。John Stecher则是WebSphere应用服务器JEE性能团队的领头人,同时也是当前和今后SPECjAppServer基准版本的首席开发者和架构师。John已经在SPECjAppServer领域工作了至少五年。

能谈一下你们IBM的团队吗?

我们WebSphere应用服务器性能团队位于明尼苏达州的罗切斯特和美国北卡罗来纳州的Research Triangle Park。我们团队致力于向我们的客户提供拥有业界领先水平的高性能应用服务器代码库。我们重点关注于"现实世界"的客户场景,这激励我们去创造多样的内部开发基准,同时也参与到像SPECjAppServer基准这样的标准基准合作中。我们正致力于了解我们客户在性能和交付上的所想所要。团队分成三个部分进行研究:未来的技术,目前的产品发布周期,以及服务流环境,以确保WebSphere应用服务器从性能角度上能够继续满足并超过我们客户的需求。我们性能团队正在撰写性能调优指南和最佳实践,用于指导我们的顾客如何在WebSphere应用服务器上使他们的应用程序达到最佳的性能表现。最近,Andrew还通过WebSphere社区博客直接与我们的客户就性能方面进行交流。

以一个组织的立场,执行该基准从开始到结束需要多久(从第一次执行到数次之后准备提交)?与测试结果相比,你们还能有多少提升?

在规模较小的硬件配置上,从新硬件拆包开始到提交最终的结果给SPEC组织,实施该基准大约需要2-3周。涉及到更多的硬件以及复杂的网络和数据库的配置,将至少需要1-3个月才能完成。由于今天市场上的几乎所有软件产品最初都运行在旧的机器上,因此测试结果都有显著的改进;同时对于一个具体的硬件配置而言,即使运行在全新机器上并广泛采用适当的默认值,也不一定就能够获得很强烈的效果。但是,一旦你调整了几个参数(主要是JVM堆栈大小),在使用全部物理内存情况下运行就能达到很好的性能效果。通常一旦你正确设置了堆栈大小,相比在该基准上调整其他参数而言,可以得到高于预期20-25%的性能。

哪些方面是能够优化最多的?

在调优方面,IBM JVM和线程池是我们优化得最多的方面。其中,JVM可能是最关键的。在堆栈大小和垃圾回收策略方面逐步对JVM进行调优,可以显著提高性能。之后,调整WebSphere应用服务器内部的线程池对于这个基准也是很关键的,但在大多数情况下并不如使客户的应用程序得到最佳性能那么关键。这是因为当你试图在基准中脱离系统之外对每个当前事务进行调整时,你实际上终结了对特定硬件本身的调整。

SPECjAppServer基准引导了对整个JEE容器的优化竞争。经过多年参与SPECjAppServer之中,WEB容器、JSP引擎、RMI和ORB、EJB容器、持久化、事务管理、过载控制和网络代码都得到了显着的优化。此外,正如我们稍后将提及的,优化在JDK和WebSphere应用服务器上的进行,可以帮助在服务器级的硬件上达到最佳性能。

用什么工具进行调优,这些工具是现成的吗?

我们在基准中使用的最重要的调优工具是现成的,并随WebSphere应用服务器以及内含JVM发布。为了获得正确的堆栈大小和JVM参数,我们只需使用带参数的垃圾回收工具,然后查看垃圾回收的停顿时间和两次垃圾回收的间隔期。我们会设法调优堆栈让垃圾回收停顿时间最小,而间隔期达到最大。之后,在WebSphere应用服务器自身内,我们使用性能监控设施(PMI)和Tivoli性能监测器(TPV)来监测线程池的效率、连接池的使用情况以及WebSphere运行时其他重要统计资料。

为了这些性能改进而不得不做出的最大功能牺牲是什么?

首先,我们重点强调不会为了参与标准化基准而在WebSphere应用服务器的代码库上做出功能牺牲。

在配置SPECjAppServer时,对所有的供应商来说,最大的牺牲是缺乏实际的高可用性硬件拓扑配置。为了在这些基准所给出最小的硬件上达到最佳的性能,所有供应商都让每件硬件产品以接近100%CPU使用率来运行,然后在这个基础上提交测试结果。这也是因为基准并没有特别要求故障场景。在现实中,如果你想要高可用性,还需要留出额外的故障处理的硬件资源。如果基准将来要求负荷下的故障控制以及确定的服务级别,那将会很有意思。 不过现在,这还是规范标准和客户代表拓扑之间的隔阂。

当我们做定期的性能测试时,测试配置方案是以"现实顾客"高可用性拓扑为场景,用以确保这些代码路径在客户的生产环境也是最优的。

有些人觉得SPEC的结果并不能很好转化到现实生活的应用程序中,对此你有什么看法吗?

SPEC的成果在向现实生活的转化,因为在基准上的竞争已经使得当今所有供应商的应用服务器做出了令人难以置信的快速发展。单就我们这方面的结果而言,在一个四核的硬件系统上,能达到每秒执行近1200个复杂业务水平的事务。SPEC基准竞争机制引导厂商通过WebSphere应用服务器和客户日常使用软件栈的不同部分去优化公共代码路径。对客户而言,基准给客户带来的价值远远超过任何一个网页上的性能数据结果所能表示的。

而这些基准不能很好向现实生活转化的原因是,你不能只是拿着一个SPECjAppServer2004的数据,就拿到你的应用中使用相同的调优,以期望如此可以获得同样的性能。在大多数情况下你的应用使用的是不同的编程方法、数据库访问模式或其他的东西,这些需要特别的调优才能获取最大的性能。此外,还有许多WebSphere应用服务器所支持的其他功能领域,是SPEC基准无法测试的。这也正是为什么我们要在内部同样开发和使用多种不同的基准以改善所有代码路径,而非仅仅是使用该规范这一个具体个案。同样我们正努力工作于下一版的SPECjAppServer及其他新的规范标准。我们继续承诺并引导规范标准去关注在所有客户代表场景下的性能。

整体上,SPECjAppServer测试数据作为指导。这些数据公布在一个与厂商中立的论坛上,以开放的观点显示了应用服务器整体潜在的性能。SPEC和其他规范基准组织是最值得信赖的公开的性能数据消息源。然而,为了获得同样性能,你必须做出相应的工作和努力,来优化你的应用程序运行时的行为和模式。这正是我们一直推荐的最好的一种惯例。及早并频繁地做自己的应用性能测试,然后进行调优。

你期望这些基准支持那些非IBM的类似硬件/软件吗?

我们期望基准支持类似的非IBM硬件和软件栈(以一种较小变化的方式)。我们直接与其他支持的硬件和操作系统公司的性能工程师一同努力工作,以确保我们的产品在他们的硬件和OS堆栈上运行性能良好。我们还与其他支持的数据库公司的性能工程师一同工作,以确保我们的数据库访问机制有良好的性能表现。

你认为谁对基准的影响最大(JVM ,CPU,数据库,还是其他)?

这实在是一个很难的问题。所有的基准测试结果同时受硬件性能( CPU、内存和网络等)和软件栈性能(JVM、数据库、应用服务器和基准代码等)的影响,就如同在现实中的性能数据一样。

最近,大多数基准测试结果突出表明,在最新的硬件产品上性能会有较大提升。增加硬件性能可直接使WebSphere应用服务器的软件栈变得更快。不过,要对最新硬件进行充分使用,我们要确保我们的软件栈(包括JVM和WebSphere应用服务器)已经为该硬件做好了能够最大程度使用该硬件能力的准备。有两个很好的例子可以显示硬件上的变化和软件相应的开发,一个是64位硬件上的变化,一个是大容量多核心处理器硬件上的变化。我们早在这些硬件普及到普通消费者手中之前,就开始了对64位和多内核的硬件变化的关注。

反过来,WebSphere应用服务器的软件代码同样对基准性有较强的影响力。正如前所述,为了达到上面基准所体现的性能,我们对WebSphere应用服务器软件代码进行了积极的优化。基于整个栈对基准性能所做出的贡献这一事实,我们必须感谢我们所有性能团队,谢谢他们帮助IBM的整个硬件和软件栈在SPECjAppServer性能上做到了业界领先。同时也要感谢我们的系统和服务器团队,我们的JVM/JIT团队和我们的DB2团队。

WebSphere应用服务器V6.1的评价报告,可以在这里下载。

SPEC是一个非赢利性组织,它建立、维护并签署标准化基准,用于衡量最新一代高性能计算机的性能。它的成员是全球性的,包括世界领先的计算机硬件和软件供应商,大学和研究机构。欲了解完整的基准测试结果细节和标准性能评估公司,请参看网站www.spec.org。截止于2007年10月3日每CPU核的SPECjAppServer2004 JOPS@Standard的测试数据结果都公布在www.spec.org。

查看英文原文:IBM Discusses Record Setting SPECj Results and the Benchmarking Process


译者简介:王军,长期从事软件开发工作,实际项目偏重于JBOSS平台上构建网管软件。对于性能测试工具有较多的关注,关心软件技术和相关工具的动态,将其中相对成熟的技术和工具应用到实际的项目之中。长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。参与InfoQ中文站内容建设,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

从specj.org的结果来看, 看不出websphere比别人强呀.... by wang robin

反而结果值比别人低

Re: 从specj.org的结果来看, 看不出websphere比别人强呀.... by blogbin avatar

websphere的优势在于IBM同时提供的服务组件,而不是websphere的性能比其它竞争对手高出一截。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT