产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

  • 2007-11-13
  • 本文字数:3800 字

    阅读完需:约 12 分钟

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

2007-11-13 00:471088

评论

发布
暂无评论
发现更多内容

【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件

萧然🐳

游戏开发 Unity 7月月更 Excel工具

Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)

程序员欣宸

Java SpringCloud 7月月更

安全保护能力是什么意思?等保不同级别保护能力分别是怎样?

行云管家

等保 等级保护 安全保护能力

体验Python剪辑视频以及相关问题解决,一劳永逸!

迷彩

Python Moviepy视频剪辑处理 7月月更

低代码平台中的数据连接方式(上)

Baidu AICLOUD

前端 低代码 数据格式 数据通信 爱速搭

TDengine 社区问题双周精选 | 第二期

TDengine

数据库 tdengine 时序数据库

NFTScan 开发者平台推出多链 NFT 数据 Pro API 服务

NFT Research

NFT 研发团队

让我们,从头到尾,通透网络I/O模型

C++后台开发

网络编程 IO多路复用 C++后台开发 网络io模型 C++开发

Redis 持久化机制

知识浅谈

redis 面试题

面试题:AOF重写机制,redis面试必问!!!

知识浅谈

redis 底层原理

MetaForce原力元宇宙开发搭建丨佛萨奇2.0系统开发

开发微hkkf5566

代理和反向代理

沃德

程序员 7月月更

让 Rust 库更优美的几个建议!你学会了吗?

非凸科技

rust API

Efficient ETL Testing

Bright

数据开发 ETL 大数据开发 EasySQL

「小程序容器技术」,是噱头还是新风口?

ToB行业头条

python变量:引用和可变性

AIWeker

Python python小知识 7月月更

浅谈网络安全之文件上传

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

深度解读 RocketMQ 存储机制

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件 消息队列

🚩🚩🚩建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!

岛上码农

flutter ios 安卓 移动端开发 7月月更

Python 入门指南之深入 Python 流程控制

海拥(haiyong.site)

7月月更

COSCon'22 社区召集令来啦!Open the World,邀请所有社区一起拥抱开源,打开新世界~

开源社

开源

同构+跨端,懂得小程序+kbone+finclip就够了!

Speedoooo

小程序 跨端开发 小程序容器 kbone web同构

OAI 5G NR+USRP B210安装搭建

柒号华仔

5G 7月月更

前置机是什么意思?主要作用是什么?与堡垒机有什么区别?

行云管家

堡垒机 前置机

(1)长安链学习笔记-启动长安链

spark调优(二):UDF减少JOIN和判断

怀瑾握瑜的嘉与嘉

spark 7月月更

gRPC三种Java客户端性能测试实践

FunTester

案例推荐丨安擎携手伙伴,保障“智慧法院”更加高效

科技热闻

存币生息理财dapp系统开发案例演示

开发微hkkf5566

TiFlash 源码阅读(四)TiFlash DDL 模块设计及实现分析

PingCAP

室内LED显示屏应该怎么选择?这5点注意事项必须考虑在内

Dylan

LED显示屏 户内led显示屏

IBM架构师谈SPECj创纪录测试结果和基准化进程_Java_Bryan Clauser_InfoQ精选文章