优化思路浅析
要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:
1. Web 浏览器向一个特定的服务器发出 Web 页面请求; 2. Web 服务器接收到 web 页面请求后,寻找所请求的 web 页面,并将所请求的 Web 页面传送给 Web 浏览器; 3. Web 浏览器接收到所请求的 web 页面内容,并将它显示出来。
上面三个步骤都关系 Web 服务器,但实际 Web 服务器性能相关最大的是在第 2 步,这里 Web 服务器需要寻找来自浏览器所请求的 Web 页面内容。
我们知道,Web 页面内容有静态的,也有动态的,静态的内容,web 服务器可以直接将结果发回给浏览器,对于动态内容,则通常需要交给应用服务器先处理,由应用服务器返回结果。
当然,也有 Web 服务器本身可以处理动态内容的,例如 IIS 就可以自已解释处理 ASP, ASP.NET 这两种微软的动态网页脚本语言。
爱主机评测网,最优惠主机信息推荐,便宜VPS分享,香港CN2
从上面简要的分析里,我们大致可以得到这样的结论,影响 Web 页面访问的影响因素会有这几个:
Web 服务器从磁盘中读取静态页面内容的速度,也即时间;
Web 服务器判定请求内容是静态还是动态内容的时间;
Web 服务器转发请求给应用服务器的时间;
应用服务器处理(解释)动态内容所需的时间;
Web 服务器返回 Web 内容给浏览器的响应时间;
Web 服务器接收来自浏览器请求的处理性能;
Web 访问请求数据在网络上传输的时间:包括从浏览器到服务器,和从服务器到浏览器两部分;
浏览器本地计算和渲染 Web 内容的时间,即接收内容后展现内容的时间。
上面 8 项很容易理解,也很直接,其实还有以下几项也是关乎 Web 页面访问速度体验的因素,你可以思考下是否如此?或者说是否会影响到页面访问性能。
Web 服务器执行安全策略检查的时间,或者说性能;
Web 服务器读取日志文件、写日志内容、关闭对日志文件访问的时间,先读后写再关闭,这三步中的读与写又涉及到磁盘访问性能因素;
同时与 Web 服务器连接会话的客户端数量大小,即并发访问量多大。
我们可以将上面一共 11 项影响因素抽像出来,那么就是:
Web 服务器磁盘性能;
Web 服务器与应用服务器交互的性能;
应用服务器处理动态内容的性能,或者说动态内容应用处理性能;
客户端与 Web 服务器的连接速度,即网络传输性能;
Web 浏览器解释和渲染 Web 内容的性能;
Web 访问并发性能。
反映到我们进行性能优化,可以入手的角度就有:
增加带宽,包括服务器和客户端两边的 Internet 连接带宽;
加快动态内容的处理性能;
尽可能多地使用静态内容,这样 Web 服务器就可以无需请求应用服务器,直接将 Web 内容发给浏览器端,这里可以入手的方案又有:
动态内容缓存
动态内容静态化
多台服务器负载均衡同时处理大量的并发访问;
提升服务器磁盘访问性能,也即通常所说的 I/O 性能;
减少网页中的 HTTP 请求数;
更换更好性能的 Web 服务器;
合理部署服务器,在离客户端更近的地方部署服务器,已经证明可以明显地提升访问性能。
性能优化实践
经过前面小节的简要分析,我相信你对优化 Web 服务器有一定的思路了,你可以从硬件层面、软件层面、Web 代码三个层面去优化。
下面我们结合一个具体的实例来实践一回,本文所举例是一个小型的 Web 站点,部分数据系假设,如有类同,纯属巧合,仅起抛砖引玉之用。在实际工作中,如果碰到大站点,你可以参考此处的分析,修改优化方案。
1. 站点简介
一个社区论坛站点,采用 Discuz! 论坛程序构建,该程序采用主流的 PHP + MySQL 组成。
网站目前有近 5 万注册用户,绝大多数是