自主阅读笔记03《基于web 服务器的网站性能优化研究》

文章来源信息记录材料by戴胜,朱琳、广东科技学院计算机系

一、客户端优化

实际指的是浏览器,在浏览器完成访问网站的时间中,有80%的时间用于加载图像、样式表、脚本等静态资源。浏览器的主要作用就是显示数据和发送http请求。

1.减少HTTP请求

一个页面中包含多个种类和多个数量的组件,减少Http请求次数就是减少对这些组件的加载请求。减少HTTP请求次数常用以下方法:
(1)延迟加载和预加载
延迟加载指的是页面刚开始加载时只加载一部分,当用户继续往后进行浏览时,才会加载后面的资源,这样可能会减少请求数量或延迟请求数量,有利于提高用户体验。预加载指的是在网页全部加载之前,对一些重要内容提前进行加载,减少加载时等待的时间。延迟加载可以使用定时器、条件触发等方法来实现。

(2) Ajax 请求优化
Ajax的优点是由于其从服务器传输信息的异步性而为用户带来反馈的及时性,但随着网页A jax应用的增加,请求数量也不断增加,这样也会降低网站性能2。对Ajax进行优化,可以使用Ajax 缓存。对Ajax请求进行缓存,将请求地址和返回结果保存在缓存中,当进行下一次A jax请求时,直接从缓存中提取数据,从而减少系统的响应时间。
2. JSP静态化
JSP技术主要用于动态网页,但每次的结果没有保存,导致每次请求都需要进行编译等多次复杂的操作,这样使得系统开销巨大。在访问JSP网页时,服务器会先把JSP转换成Servlet对象,然后对Servlet进行处理,最终将结果以HTML文件格式返回给浏览器。JSP静态化实际上就是在Servlet处理之后到HTML页面响应之前这一过程中,设置一个拦截器,将Servlet生成的HTML文件进行保存,当下一次访问时,可以直接加载HTML文件,从而减少系统操作时间。

二、服务器端优化

当请求到达服务器后,服务器根据请求内容进行业务逻辑处理,或调用方法,或访问数据库,或连接外部网站,根据服务器业务处理中涉及到的两个重要部分web服务器访问和数据库访问,提出以下优化方案。
1.提高后台服务器性能
   (1)负载均衡
  负载均衡指的是对系统中的各个节点的负载进行监控调整,使每个节点的负载趋于均衡。具体是指在系统节点中部署硬件负载均衡设备或安装负载均衡软件,对各个节点进行监控,并建立一套映射机制,可以将请求分发到其他节点,从而使过载节点减少负担,实现负载均衡。常见的负载均衡技术包含:NDS轮询、IP负载均衡和CDN.
DNS轮询就是将同一个域名对应多个IP地址,一般采用轮询算法进行调度,但实际上由于调度策略的问题,DNS轮询很难实现真正的均衡;IP均衡负载是通过内核驱动更改IP的目的地址来完成数据负载均衡的,请求先到达负载均衡服务器,之后将IР进行映射,并把请求内容发送到新的IP地址对应的服务器上;CDN是利用各种缓存服务器部署到用户访问集中的网络中,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求3。负载均衡在用户访问量比较大的情况下使用,才能保证成本和服务器性能。
(2)多线程并发
多线程并发指的是使用多个线程其处理多个任务。一个请求会产生一个Servlet,一个Servlet需要一个线程

来处理,使用多线程技术可以同时处理多个请求和任务,这样可以节省时间,提高访问性能。多线程并发常采用线程池技术。线程池会预先生成多个线程,当有任务到达就会从中取出一个线程进行处理,而之前的线程在完成任务后会回到线程池,准备下一次被调用。线程池技术能够减少创建线程带来的时间开销,有利于提升系统性能。
2.数据库优化
数据库的访问效率是网站性能的重要体现。在数据库访问优化中,要把握减少数据访问、返回更少数据、减少交互次数、减少系统开销等原则。
(1)建立适当的索引
对适当的字段建立索引,从而提升数据库访问效率。索引的种类有很多,组合索引、多重索引等等,通过这些索引的整合使用将大大提高数据库的访问效率。
(2)减少数据量
减少返回的数据量,可以减少服务器和数据库两者数据传输的时间,这将有利于减少web 服务器响应数据的时间。常常是进行数据分页处理,减少每次传输数据,并且只对需要的数据进行返回
(3)使用数据库连接池
数据库连接池在系统初始化过程中会创建多个数据库连接,当有数据库访问请求到达时,不需要再进行数据库驱动加载、连接等步骤,而是直接从数据库连接池进行调用,这样减少数据库的访问时间,提高效率4。
3.缓存技术
缓存技术就是将访问过的内容进行记录保存,在下次访问时可以直接从记录中调用数据,从而提高访问速度。缓存技术分为操作系统磁盘缓存,数据库缓存,应用程序缓存,web 服务器缓存,客户端浏览器缓存5。缓存技术可以使用在网站访问的各个环节,根据网站的服务对象和服务要求设置特定的方案,才能使缓存效果最好。

 

posted @ 2023-04-14 14:48  热爱代码的某人  阅读(12)  评论(0编辑  收藏  举报