构建高性能web站点-1

如下为阅读《构建高性能web站点》郭欣 著 javascript

这本书的适合读者:php

1.编写web程序、关心站点性能,而且但愿本身作的更加出色的开发人员css

2.关心性能和可用性的web架构师html

3.但愿构建高性能web站点的技术负责人java

4.实施web站点性能优化或者规模扩展的运维人员web

5.与web性能有关的测试人员数据库

 

第一章的重点总结apache

1.等待的真相浏览器

a) 在用户等待的时间里,大概发生了如下几部分时间:缓存

i. 数据在网络上传输的时间:包括两个部分,浏览器端主机发出请求通过网络到达服务器的时间,服务器回应数据通过网络到达浏览器主机的时间。也称为响应时间,他的决定因素主要包括发送的数据量和网络带宽。站点服务器处理请求并回应数据的时间-

ii. 站点服务器处理请求并生成回应数据的时间。主要消耗在服务器端,包括很是多的环节,咱们通常用“每秒处理请求数”指标来衡量这部分时间,也称吞吐率:单位时间内处理的请求数。影响吞吐率的因素很是多,好比服务器的并发策略、I/O模型、I/O性能、CPU核数,固然也包括应用程序自己的逻辑复杂度

iii. 浏览器本地计算和渲染的时间。主要消耗在浏览器端。依赖因素包括浏览器采用的并发策略、样式渲染方式、脚本解释器的性能、页面大小、页面组件数量、页面组件缓存情况、页面组件域名分布以及域名DNS解析等

2.瓶颈在哪里

a) 系统的瓶颈是指影响性能的关键因素,这个因素随着系统的运行又会发生不断的变化或迁移。一旦真正找到影像系统性能的主要因素,坚定对其进行调整和优化

3.增长带宽

4.减小网页中的http请求

a) 设计更简单的网页,使其包含较少的图片和脚本,但可能牺牲了美观和用户交互

b) 将多个图片合并为一个文件,利用css背景图片的偏移技术呈如今网页中,避免多个图片的下载

c) 合并javascript脚本或者css样式表

d) 充分利用http中浏览器的cache策略,减小重复下载

5.加快服务器脚本计算速度

a) 对于拥有较强商业支持的脚本语言,均有内置的优化方案。好比解释器对某个脚本程序第一次解释的时候将中间代码缓存起来,以供下次使用。

b) 对于开源类的脚本语言也有不少第三方组件提供此功能。好比php的apc组件等。下载地址:http://pecl.php.net/package/apc参考学习:http://www.cnblogs.com/shamrocker/archive/2012/08/23/2651873.html

6.使用动态内容缓存:将动态内容的html输出结果缓存起来,成千上万的缓存文件如何存储

7.使用数据缓存:数据缓存存储在哪里呢?须要考虑多方面的因素:速度、共享、

经常使用缓存技术参考:http://www.cnblogs.com/softwaredevelop/archive/2010/04/07/1706322.html

8.将动态内容静态化:虽然避免了可观的重复计算,可是每次还须要调用动态脚本解释器判断缓存是否过时以及读取缓存,这彷佛有些多余,并且关键消耗了很多时间

9.更换web服务器软件:有人拿着所谓的测试数听说apache已通过时,你相信吗?另外一方面,你正在使用的web服务器软件也许让你无比的自豪,可你知道复杂的配置背后的本质吗?你知道为何它仅仅在处理你的站点请求时如此出色吗?若是让你编写web服务器软件,你可让他更快一些吗。咱们必须中止盲目的选择,中止对表面现象的崇拜,咱们须要学习一些稍显底层的知识来武装本身。

10.页面组件分离

11.合理部署服务器:ip,运营商等的选择

12.使用负载均衡:须要经过各类不一样的方法实现web负载均衡。多是简单的http重定向,或者是给予DNS的轮询解析,或者经过反向代理服务器来实现负载均衡调度,还能够经过lvs来组建服务器集群

13.优化数据库:1.应用程序数据访问组件设计,合理的数据表结构设计,频繁的数据库连接和释放,合理使用各类类型的索引,了解数据库存储引擎特性。将数据散列在多台主机,包括必要的冗余数据,以此来合理的分散数据库的密集访问,数据库扩展便成为咱们考虑的方案

14.考虑可扩展性:可扩展性的目的是适应负载的变化

15.减小视觉等待