简介
通常,当我们谈论一个互联网应用的性能的时候,我们总是会关注服务器系统的吞吐量(Throughput)、响应时间(Response Time)、单位时间的事务量(Transactions per seconde)、CPU 使用率、磁盘 I/0、内存使用等等服务器性能参数,测量这些服务器性能参数并对其进行分析是软件性能工程的主要工作。但是当基于 Web 2.0 技术互联网应用兴起的时候,游戏规则却已悄然发生了变化。一个典型的现象是,在实际的应用环境中,终端用户感到这个应用的响应很慢,但是在系统服务器端却观察不到任何一个资源瓶颈。而以服务器为中心的性能测量结果也证实这个互联网应用的吞吐量和响应时间都很好,而且在开发环境中也没有检测到类似的响应慢问题。这种现象在 Web 2.0 之前不是没有,但在 Web 2.0 架构的应用却越来越普遍。这说明以服务器为中心的性能工程可能是有盲点的,它可能已经不能全面分析、解决在 Web 2.0 架构上的性能问题。针对 Web 2.0 架构的性能工程,我们需要找到这个盲点,并用新的理论、方法和工具来填补这个盲点。
面向服务器的性能工程的盲点
- 记录一个典型终端用户浏览器和应用服务器的交互,也就是浏览器和应用服务器之间的 HTTP 请求。
- 用性能测量软件将这些 HTTP 请求编制成脚本。典型的测量软件有 IBM 的 Rational Performance Tester。
- 在工作负荷生成服务器上,性能测量软件将模拟成千上万的用户来运行这些脚本,即发送 HTTP 请求并接受响应。
- 性能测量软件将记录,计算用户请求的响应时间,服务器的吞吐量及其它性能数据。
这套方法有盲点吗?有。用这套方法所观察到的响应时间和真实的终端用户的观察到的响应时间比,至少有两个盲点:
- 缺少浏览器渲染时间。终端用户的浏览器会渲染(包括解释,执行和呈现)HTTP 响应的内容。而性能测量软件却不能。
- 缺少复杂网络条件下,网络传输对响应时间的影响。真实用户很可能会从各种各样不同网络环境(比如网吧)访问一个互联网应用,而基于现实的原因,性能测量软件往往是在实验室中访问实验室中的互联网应用。
然而,这两个盲点也被忽略很多年了,服务器中心的性能工程已经成功很多年了。那么在 Web 2.0 架构下,它还能继续被忽略吗?
回页首
新的挑战与无法忽略的盲点
Web 2.0 架构到底给性能工程带来了什么样的挑战?在回答这个问题前,让我们比较一下 Web 2.0 架构和传统互联网应用的的区别。这个图对比了传统互联网应用(WebSphere Portal)的三层体系架构和 Web 2.0 应用(Lotus Mashups)的三层体系架构:
图 1. 传统互联网应用(WebSphere Portal)的三层体系架构和 Web 2.0 应用(Lotus Mashups)的三层体系架构

它们之间的区别是明显的:
- WebSphere Portal:业务逻辑层的实现在服务器端。
- Lotus Mashups:业务逻辑层的实现可以在浏览器端。
- WebSphere Portal:绝大部分的表现层在服务器端。
- Lotus Mashups:绝大部分的表现层在浏览器端。
- WebSphere Portal:服务器端的 Portlets 内容聚合。服务器端把 Portlets 的内容聚合成 Html, 浏览器端负责 HTML 页面内容渲染和有限的 JavaScript 实现用户交互。
- Lotus Mashups: 浏览器端的 Widgets 内容聚合。浏览器端把 Widgets 的内容插入 HTML DOM, 浏览器端完全负责 HTML 的生成和页面内容渲染,大量的 JavaScript 在浏览器上运行。
由此可见,Web 2.0 的应用给性能工程带来了两大挑战,而这两大挑战恰恰是在传统互联网应用中可以被忽略的性能盲点。在 Web 2.0 应用中它们不能再被忽略:
-
盲点 1:浏览器渲染时间
在传统的互联网应用架构中,绝大多数的工作是在服务器端完成的。所有的业务逻辑是服务器端完成的,并且服务器端生成了完整的 HTML 页面,浏览器只要呈现就可以了。 而在 Web2.0 架构中,很多工作被移到了浏览器端,浏览器用 Javascript 直接操作 DOM 来生成 HTML。而且部分义务逻辑也可以在浏览器端完成。同时,随着异步 HTTP 请求的大量使用,HTTP 请求的发起时间由 JavaScript 逻辑控制。这使得 HTTP 请求的并发度下降,而影响到页面下载的完成时间。这些都使得很多的响应时间消耗在浏览器端。所以浏览器渲染时间不能被忽略。
-
盲点 2:网路传输时间
在传统的互联网应用架构中,逻辑是有 Java 或其他语言在服务器的执行的。这些代码不也就驻留在服务器端而不需要被传输。而在 Web 2.0 架构下,这些代码是很有可能用 Javascript 实现并在 Browser 端执行的。这必然涉及到 Javascript 及其他相关联资源在互联网上的传输。这使 Web 2.0 架构可能会牵涉多的多的 HTTP 请求。而这可能或大大的增加网络传输时间,细节容后再述。
回页首
总结:照亮盲点
由上所述,这两大盲点在 Web 2.0 应用中不能被忽略。我们需要新的方法与工具来覆盖特别是客户端的性能 -- 浏览器响应时间。 通常,我们可以理解浏览器响应时间的计算公式:
浏览器响应时间= 服务器端响应时间+ 页面装载时间+ 浏览器渲染时间
在传统的互联网应用中,由于浏览器端的时间消耗比较有限,并且页面装载时间也比较简单且有限。所以在对传统互联网应用的响应时间分析中,我们通常忽略页面装载时间和浏览器渲染时间,而着重分析服务器响应时间。 而在 Web 2.0 应用中,页面装载时间和浏览器渲染时间将成为决定性能的关键因素。所以在接下来的系列文章中,我们将以 IBM Mashup Center 的产品作为实例,分别介绍有关页面装载时间与浏览器渲染时间的性能测试和分析方法,并在最后一篇文章列出了一些通用的解决方案。
转自:DW http://www.ibm.com/developerworks/cn/lotus/web20-perf-1/index.html
分享到:
相关推荐
cmd-bat-批处理-脚本-rimraf.zip
该资源文件详细介绍了如何在ADS软件中进行混频器仿真,内容涵盖了仿真设置、参数调整、结果分析等多个方面。
cmd-bat-批处理-脚本-Messagebox_Cancel_TryAgain_Continue.zip
内容概要:本文详细介绍了如何使用C#客户端实现OpcUa通讯,具体包括远程连接KEPserverEX服务器的方法及其应用。文中不仅提供了详细的环境准备工作指导,还给出了具体的代码示例用于创建会话和连接服务器,最后通过UaExpert测试工具验证了整个流程的有效性。这是一套亲测稳定高效的解决方案,适用于工业自动化领域的数据传输和控制。 适合人群:从事工业自动化领域的研发人员和技术爱好者,尤其是那些有C#编程经验并对OpcUa通讯感兴趣的开发者。 使用场景及目标:①帮助开发者掌握C#客户端连接KEPserverEX服务器的具体方法;②提供实用的代码示例和测试工具使用指南,便于快速上手;③确保数据传输的安全性和稳定性,提高工作效率。 其他说明:文章强调了环境准备的重要性,包括安装必要的开发工具和库,同时也指出了可能遇到的问题及解决办法。此外,还提到了UaExpert作为一款优秀的测试工具,在验证连接和数据交互方面的优势。
人工智能中的自动逻辑推理.zip
cmd-bat-批处理-脚本-os2_cid_install.zip
在武汉大学大地测量学基础的编程作业中,我已完成相关任务。通过使用教材中的算例进行验证,程序运行结果的误差极小,这充分证明了程序的准确性和可靠性。在公式推导过程中,我严格遵循步骤,确保每一步都清晰严谨,从而保证了最终结果的高精度。作业中还提供了灵活的选择,用户可以根据自己的需求选择正算或反算操作,并且可以手动输入任意坐标,方便进行多样化的计算和验证。
警 院指挥教学数字训练系统设计——公 安院校电子沙盘教学系统设计.zip
cmd-bat-批处理-脚本-un-java.zip
cmd-bat-批处理-脚本-SetForegroundWindow.zip
内容概要:本文详细介绍了GSP软件在航空发动机和燃气轮机模型设计中的应用。首先,讨论了如何利用GSP软件构建不同类型的航空发动机(如涡扇、涡喷、涡轴)和燃气轮机模型,涵盖了从进气道到涡轮各组成部分的建模。接着,阐述了稳态特性的循环计算方法,包括空气、燃油、燃气等组分的变换及其能量转换和物质交换的计算。最后,探讨了瞬态性能计算和部件性能衰退降级仿真,通过时间序列分析和动态仿真模块,模拟发动机在不同工况下的瞬态响应和故障数据,从而全面评估发动机的性能。 适合人群:从事航空发动机和燃气轮机研究的设计工程师、研究人员和技术专家。 使用场景及目标:适用于需要深入了解航空发动机和燃气轮机构造、稳态和瞬态性能的研究和开发项目。目标是提高对发动机工作原理的理解,优化设计流程,提升性能预测精度。 其他说明:文中提到的技术手段不仅限于理论分析,还包括实际操作层面的代码实现,帮助读者掌握具体的建模和仿真技巧。
cmd-bat-批处理-脚本-installtrusted.zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
威布尔杂波下扩展目标检测.zip
remotesensing-13-04370-v2.pdf
二十四节气之霜降介绍.pptx
2025年网络安全技术漏洞扫描.docx
cmd-bat-批处理-脚本-virtualcam-uninstall.zip
不完备决策表的相对约简算法.pdf
chat-box1.12.3 版本windows专用