缩短响应时间方案 response time
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、背景
性能是Web应用程序成功与否的关键因素,响应时间则是性能的一个重要指标,尤其是从用户的角度来看,随着同时访问的用户数的增加,Web应用程序的响应时间也会相应增加,当其增加到用户无法接受的程度时,用户便会失去耐心而离开该网站。根据Zona Research的研究指出,如果使用者等待下载网页的时间超过8 s,将有30%的用户选择停止浏览网页,同样的研究表明,如果下载网页的时间缩短1 s,则这个数字将从30%降低到8%。由此可见终端用户所感到的时间延迟(user-perceivedlatency)已经成为今天Internet的主要性能问题。
在网络带宽并没有得到相对扩充、网络流量绝对增加的情况下,找到一些有效的办法来缩短整个网络对用户请求的响应时间,就显得愈发重要。针对这一问题,我们从以下几个方面进行了调研与探索,从而加速网络对用户的反应速度,缩短用户感知的时间延迟。
二、缩短响应时间的方案
2.1 优化数据访问
对数据的访问速度很大程度上影响应用系统的性能,如果被请求的页面是一个静态页面或只有一小部分内容需要从数据库中提取,则它的加载速度比那些需要从数据库中大量读取数据或不断从数据库接收和更新数据的页面要快,因此,对于动态的页面来说,对SQL层数据处理的优化就显得非常重要。在Web开发中,除了传统的改善数据库结构和优化SQL语句外,主要从以下的几个方进行优化。
2.1.1 使用XML技术
采用XML(可扩展标记语言)技术,可将查询的结果生成XML文件保存在Web 服务器上,使客户端能够直接和XML文件进行交互,以节省访问数据库的资源;同时也可以将XML传送到客户端,在客户端恢复为数据集,此后就可以直接在客户端进行一些操作,而不必和服务器交互,建立非连接的数据访问以节省时间。这里采用以下的算法过程利用XML技术实现对数据库的访问。
(1)建立数据库连接,生成查询结果数据集(DataSet);
(2)用XmlDataDocument将查询结果集(DataSet)以XML形式保存在Web服务器的指定目录下,同时断开数据库连接;
(3)一旦用户发送访问请求,首先查询Web服务器指定目录下是否有满足条件
的XML文件,如果存在转(4),否则转(1);
(4)创建XmlDataDocument对象,并用其Load方法加载该XML文件;
(5)利用XPath或者XQuery查询技术,查询已加载的XML文件,生成相应的结果集。
从上面的过程可以看出,一旦有用户发送查询请求,首先将数据库服务器中的数据转化为XML文档,保存在Web服务器上,然后查询XML文件中的数据,获取查询结果。之后如果有新的请求查询相同的记录时,可以直接从Web服务器的XML文件中提取数据而不用再访问数据库。这对于用户频繁的查询汇总操作中,优势非常明显,且效率很高。这种思想在逻辑上将数据的生成和操作分开,同时节省了和数据库服务器建立连接的时间,将其转换为对服务器端XMl文件的读取,有效地减轻了对系统数据库服务器的负荷。
3.1.2 使用连接池
建立Web应用程序与数据库之间的TCP连接时,DBMS(数据库管理系统)需要为其分配多种资源,而在释放连接时,DBMS需要释放掉这些资源,分配和释放资源都是比较耗时的工作,因此反复建立和释放连接势必会影响整个系统的性能。实际上,大多数应用程序仅使用1个或几个不同的连接配置。这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭。为了使打开的连接成本最低,使用连接池的优化方法。
连接池技术能够能重用到数据库的连接,而不是每次请求都建立新的TCP连接,新连接仅在连接池中得不到连接时才建立。当连接被关闭时,它被返回到连接池中,在那里它仍然保持与数据库的连接,与完全断开TCP连接相反。池进程保持物理连接的所有权。通过为每个给定的连接配置保留一组活动连接来管理连接。只要用户在连接上调用Open,池进程就会检查池中是否有可用的连接。如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。应用程序在该连接上调用Close时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接。连接返回到池中之后,即可在下一个Open调用中重复使用。池连接可以大大提高应用程序的性能和可缩放性。默认情况下,中启用连接池。除非显式禁用,否则,连接在应用程序中打开和关闭时,池进程将对连接进行优化。
2.2减少网络通信量
数据传输量的大小是决定显示响应速度的必要前提,数据传输量是指在客户端Web浏览器和Web服务器之间传送的数据量。我们可以通过减少网络的通信量:减少IE浏览器和Web服务器层之间的数据传数量,缩短用户感知时间。
2.2.1 使用缓存技术
Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下,缓存服务器可以处理大部分客户的静态请求,而原始的服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的负载。合理有效地设计和使用缓存是优化应用系统性能的重要手段,在基于Web的支持大量用户的系统开发中,这一点尤为明显。利用有效的缓存,可以避免Web服务器与数据库之间的网络往返,绕过占用很多资源的计算,并节省服务器资源,同时改善响应时间和等待时间。
缓存服务是一种提高服务器性能、降低服务器资源浪费的有效方法。对于安全性要求高的应用程序,采用在WEB服务器上维护缓存数据的方式可以有效地提高页面性能。缓存实现了最近最少使用(least-recently-used)替换算法,而且允许强制缓存清除操作——如果可用内存下降到低水平——则自动从缓存中删除不使用的项目。另外缓存支持依赖性到期特性,它能强制包括时间、键值、文件失效。多级缓存的体系结构如图3所示。
2.2.2 避免服务器和客户端的交互
HTTP是用于客户端和服务器之间进行信息传输的协议,它是一种请求响应类型的协议:客户机向服务器发送请求,服务器收到请求后进行处理,对这个请求作出回答。Web浏览器包含了许多的HTTP请求,每一个请求对应一个小型文件,HTTP 对每一个HTTP请求需要建立1个独立的TCP连接。
因此,客户端的每次请求将会引起客户端和服务器间的一次通信,频繁的操作