免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1375 | 回复: 1
打印 上一主题 下一主题

[Web] 关于web性能优化的一些分享 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-19 10:57 |只看该作者 |倒序浏览
来自:http://bbs.chinaunix.net/thread-4137545-5-1.html

关于web性能优化,结合我自身的项目经历,简单总结一下:

1.  DNS优化
     第一次网页浏览会加载各种资源,发出很多动态请求,从输入地址框DNS解析主域名就要开始优化了,好的或者说企业级的DNS提供商可以大大缩短各个地域的本域名dns解析时间。貌似html5 还有一些浏览器支持dns 预加载的东西,可以加速网页其他资源域名解析速度。

2. CDN & BDN
    总的特点是横向负载,CDN 内容负载一些静态请求,BDN业务负载一些动态请求。
    关于CDN的工作方式,
       A需要向CDN服务器单独上传静态资源.
       B.CDN server 主动向后端主站发请求,会缓存静态请求,对于这种情况后端主站可以有单独的图片服务器,或者用nginx的 proxy_cache  或者squid 功能做一个后端的静态缓存,降低后端服务器IO和部分网络负载。
    CDN 可以自建或者购买CDN服务,甚至可以只是同一台主机,同一个域名的别名,其效果就是充分利用浏览器可以为单个域名同时并发6个请求的限制,比如搞几个img0.xx.com img1.xxx.com  css.xx.com js.xxx.com 等等 ,此种情况最好结合DNS优化,效果会更好。
   
     关于BDN的工作原理和效果跟CDN类似,由于动态请求涉及业务逻辑,比如用户各种状态,session,数据共享等等,如果采用多这个集群还要考虑消息队列机制来保持数据一致性,所以实现起来相对复杂一些,但是对于大型应用比如淘宝规模的,BDN负载还是很必要的。

  3. BigPipe & 各种前端技术
      首先保证,静态资源Etag,保证静态资源不需要重复加载。建议在1和2优化的基础上,因为3的优化影响到前端业务实现的方式,程序开发工作量大,如果是起初就在3的基础上做还可以,否则已经成型的网站最后单独做3的优化时,面临各种业务测试任务。
     优化要点包括:
      1.分拆业务到ajax请求,json请求+js模板函数更佳
      2.css 优化减小css体积, 将css调用的样式图片整合到1张图片减少请求数,或者只加载页面所需的css样式
      3.js 优化减小js文件调用以及体积,只加载所需的js
      4.页面输出流采用bigpipe模式,不需要等整个页面在后台跑完,再输出给前端,这样很多已完成部分渲染的静态资源可以提前加载,而不是等到整个页面输出完之后。

4.后端服务优化
    1.负载 均衡
         请求层server本身通过增加节点来负载,比如多搭建几个lnmp,或者lamp节点来做前端load balancer的负载
        数据读写层DB比如mysql,本身支持负载比如master/slave 或者cluster集群负载,还有一些nosql的比如mongodb, redis,memcache,couchbase都支持集群负载,一般用过haproxy来做负载均衡器。
   2.业务优化
      比如大型DB需要分拆表,甚至可以分拆表到不同的server像淘宝。在合适的地方使用高速缓存比如memcache,redis等等,尽可能减少数据层的读写。
     还有就是比如我是php程序员,所涉及也是php的web编程比较多,但有些业务可能php本身不擅长,所以可以考虑采用其他语言来实现,比如nodejs的异步IO特性,用来做实时消息队列,python已存在各种高效库用起来,要比php重写的类似功能用起来估计更稳定高效。业务层的深入优化需要根据详细的业务本身来定制,这已经超出了web性能优化的范畴。

我能想到的就这四点,还请高手指教。 :)

评分

参与人数 1可用积分 +5 收起 理由
cryboy2001 + 5 很给力!

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2014-06-20 07:56 来自手机 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP