网站性能优化总结
网站性能优化
网站的性能优化主要分为两点
第一:减少用户的等待时间;
第二:应付高并发,大流量。
等待的真相,我们在等什么?
1.数据在网络上传输的时间
2.站点服务器处理请求并生成回应数据的时间
3.浏览器本地计算和渲染的时间
数据在网络上传输的时间总的来说包括两部分,即浏览器主机发出的请求数据经过网络到达服务器的时间,以及服务器的回应数据经过网络回到浏览器端主机的时间。我们称她为响应时间。
响应时间的决定因素主要包括发送的数据量和网络带宽
站点服务器处理请求并生成回应数据的时间主要消耗在服务器端,包括非常多的环节,我们一般用吞吐量来衡量着部分时间,即每秒处理请求数。影响服务器吞吐率的因素很多,比如服务器的并发策略,I/O模型,I/O性能,CPU核数等,当然也包括应用程序本身的逻辑复杂度。
浏览器本地计算和渲染的时间自然消耗在浏览器端,它依赖的因素包括浏览器采用的并发策略,样式渲染方式,脚本解释器的性能,页面大小,页面组件的数量,页面组件缓存状况,页面组件域名分布以及域名DNS解析等。
优化性能,关键是要找到瓶颈,随着网站的不断优化和发展,瓶颈也会发生改变和迁移,后续一系列的文章将会介绍针对不同的瓶颈,给出相应的解决方案。一般我们会从以下一个方面来考虑优化
增加带宽
不同类型的网站瓶颈也会不同,如果是以提供下载服务为主的站点来说,也许增加服务器带宽是很有效的办法。
减少网页中的HTTP请求
我们知道web站点中的任何一个网页都包含多个组件,每个组件都需要下载,计算或渲染,毫无疑问,这些行为都会消耗时间,那么如果减少这些行为,应该就可以加速网站的加载,要解决这一问题,我们可以从以下几个方面来想办法
2.1将多个图片合并为一个文件,利用css北京若的偏移技术呈现,避免多个图片的下载
2.2合并js和css,即将多个js,css这类静态文件合并成一个请求。淘宝的开源nginx模块(nginx-http-concat)实现了这一功能。
2.3利用http中的浏览器端cache策略,减少重复下载。
以上这些技巧主要是web网页前端的优化
加快服务器脚本计算速度
像是asp.net,jsp这些有大型商家支持的技术,解释器都会将脚本解释后的中间代码缓存起来。
使用动态内容缓存
将动态的内容的html输出结果缓存起来
使用数据缓存
动态内容静态化
即将动态的页面生成静态的页面存起来,这时我们不在需要程序动态的判断静态内容是否过期,静态页面完全独立了,不在需要动态代码控制了。
更换web服务器软件
页面组件分离
合理部署服务器
这里主要指的是服务器的地理位置,和服务器与客户端的运营商
使用负载均衡
当我们已经最大程度地发挥了单台服务器的处理能力,但是,当它所能承受的压力达到极限是,我们不得不考虑使用更多的服务器来分担工作,这时我们就需要想办法将流量合理的分配到各个服务器上,实现负载均衡,我们可以使用lvs(已集成到linux内核中)和nginx。
优化数据库
考虑可扩展性
后续章节,将针对优化提到的各个解决方案进行详解。