当前位置:主页 > 计算机电子书 > 程序设计 > 网站优化 pdf电子书
大型网站性能优化实战

大型网站性能优化实战 PDF 全书清晰版

  • 更新:2023-08-11
  • 大小:146.9 MB
  • 类别:网站优化
  • 作者:周涛明
  • 出版:电子工业出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

大型网站性能优化实战》是由电子工业出版社出版的一本关于网站优化方面的书籍,作者是周涛明,主要介绍了关于网站优化、网站性能方面的知识内容,目前在网站优化类书籍综合评分为:7.4分。

码农点评

《大型网站性能优化实战》是一本由阿里三位熟悉不同领域性能优化的技术专家打造的宝典书。这本书全面介绍了从Web前端到服务端,从外部链路到内部机房的十亿级流量大型网站全链路性能分析、监控及调优思路和实战解决方案。读者可以从中学习到网站优化的各个方面,并了解到如何进行性能分析、监控以及调优。无论是对于有经验的开发人员还是对性能优化感兴趣的读者来说,这本书都提供了实用的指导和实战经验,是一本不可多得的宝典。

书籍介绍

大型网站性能优化实战

大型网站性能优化实战 电子书封面

内容总结

Web前端性能优化
一般来说Web前端指网站业务逻辑之前的部分,包括浏览器加载,网站视图模型,图片服务,CDN服务等,主要优化手段有优化浏览器访问,使用反向代理,CDN等。
1..浏览器访问优化

(1)减少http请求
HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要简历通信链路,进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理,这些通信和服务的开销都很昂贵,减少HTTP请求的数目可有效提高访问性能。
减少HTTP请求的主要手段是合并CSS,合并JavaScript,合并图片。将浏览器一次访问需要的JavaScript,CSS合并成一个文件,这样浏览器就只需要一次请求。多张图片合并成一张,如果每张图片都有不同的超链接,可通过CSS偏移响应鼠标点击操作,构造不同的URL。

(2)使用浏览器缓存
对一个网站而言,CSS,JavaScript,Logo,图标等这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次HTTP请求都需要的,如果将这些文件缓存在浏览器中,可以极好地改善性能。通过设置HTTP头中Cache-Control和Expires属性,可设定浏览器缓存,缓存时间可以是数天甚至是几个月。有时候,静态资源文件变化需要及时应用到客户端浏览器,这种情况可以通过改变文件名实现,比如一般会在JavaScript后面加上一个版本号,使浏览器刷新修改的文件。

(3)启用压缩
在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效较少通信传输的数据量。文本文件的压缩效率科大80%以上。

(4)CSS放在页面最上面,JavaScript放在页面最下面
浏览器会在下载完全部CSS之后对整个页面进行渲染,因此最好的做法是将CSS放在页面最上面,让浏览器尽快下载CSS。JS则想法,浏览器在加载JS后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此JS最好放在页面最下面。

(5)减少Cookie传输
一方面,Cookie包含在每次请求和响应中,太大的Cookie会严重影响数据传输,因此哪些数据需要写入Cookie需要慎重考虑,尽量减少Cookie中传输的数据量。另一方面,对于某些静态资源的访问,如CSS,JS等,发送Cookie没有意义,可以考虑静态资源使用独立域名访问,避免请求静态资源时发送Cookie,减少Cookie传输的次数。

2.CDN加速
CDN(Content Distribute Network,内存分发网络)的本质上仍然是一个缓存,而且将数据缓存在离用户最近的地方,是用户以最快速度获取数据,即所谓网络访问第一跳。CDN一般缓存的是静态资源,如图片,文件,CSS,Script脚本,静态网页等,但是这些文件访问频率很高,将其缓存在CDN可极大改善网页的打开速度。

3.反向代理
传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发送到互联网上,而反向代理服务器位于网站机房一侧,代理网站Web服务器接收HTTP请求。和传统代理服务器可以保护浏览器安全一样,反向代理服务器也具有保护网站安全的作用,来自互联网的访问请求必须经过代理服务器,相当于在Web服务器和可能的网络攻击之间建立了一个屏障。
除了安全功能,代理服务器也可以通过配置缓存功能加速Web请求,当用户第一次访问静态内容的时候,静态内容就被缓存在反向代理服务器上,这样当其他用户访问该静态内容的时候,就可以直接从反向代理服务器返回,加速Web请求响应速度,减轻服务器负载要。

内容介绍

性能是大型网站的一个要素,影响性能的因素非常多。本书由三位熟悉不同领域性能优化的技术专家打造,从大型网站的整体体系出发,讲述大型网站性能优化的全链路实践过程,包括核心原理、常见策略与实战案例。具体内容包括:基于用户体验的性能优化要素、前端性能优化、网站性能分析、服务端性能优化、TCP优化、DNS优化、CDN优化、大型网站性能监控体系、大型网站容量评估、高性能系统架构模式、大促保障体系、数据分析驱动性能优化。本书的初衷就是将实践分享给读者,为其展示一个性能优化相关知识的全貌。书中的很多性能优化方法和策略都是作者从实践中总结出来的,实用性非常强。本书既可供入门者了解大型网站性能优化所有的相关技术,以及解决问题的思路和方法,也可供业界同行参考,给日常工作带来启发。

目录

  • 第1章 基于用户体验的性能优化要素 1
  • 第2章 前端性能优化实战 16
  • 第3章 网站性能分析 24
  • 第4章 服务端性能优化 36
  • 第5章 TCP优化 107
  • 第6章 DNS优化 120
  • 第7章 CDN优化 138
  • 第8章 大型网站性能监控体系 182
  • 第9章 大型网站容量评估 205
  • 第10章 高性能系统架构模式 218
  • 第11章 大促保障体系 246
  • 第12章 数据分析驱动性能优化 293

资源获取

资源地址1:https://pan.baidu.com/s/1IhK6ibBvhe2qqlAtNsTmQA(密码:cacv)

网友留言

网友NO.40425
网友NO.40425

1.分布式缓存 当网站遇到性能瓶颈时,第一个想到的解决方案就是使用缓存。在整个网站应用中,缓存几乎无所不在,既存在于浏览器,也存在于应用服务器和数据库服务器,既可以对数据缓存,也可以对文件缓存,还可以对页面片段进行缓存。合理使用缓存,对网站性能优化意义重大。 缓存的本质是一个内存Hash表,网站应用中,数据缓存以一对Key,Value的形式存储在内存Hash表中。缓存主要用来存放那些读写比很高,很少变化的数据,如商品的类目信息,热门词的搜索列表信息,热门商品信息等。应用程序读取数据时,先到缓存中读取,如果读取不到或数据已失效,再访问数据库,并将数据写入缓存。 合理使用缓存 使用缓存对提高系统性能有很多好处,但是不合理使用缓存非但不能提高系统的性能,还会成为系统的累赘,甚至风险。 (1)频繁修改的数据 如果缓存中保存的是频繁修改的数据,就会出现数据写入缓存后,应用还来不及读取缓存,数据就已经失效的情形,徒增系统负担。 (2)没有热点的访问 缓存使用内存作为存储,内存资源宝贵而有限,不可能将所有数据都缓存起来,只能将最新访问的数据缓存起来,而将历史数据清理出缓存。如果应用系统访问数据没有热点,不遵循二八定律,那么缓存就没有意义。 (3)数据不一致与脏读 一般会对缓存的数据设置失效时间,一旦超过失效时间,就要从数据库中重新加载。因此应用要容忍一定时间数据的不一致。如卖家已经编辑了商品属性,但是需要过一段时间才能被买家看到。还有一种策略是数据更新时立即更新缓存,不过这也会带来更多系统开销和事务一致性的问题。 (4)缓存可用性 一般来说,缓存作为提升系统性能的方法,即使缓存数据丢失或者不可用也不会影响系统的可用性。但是随着业务的发展,缓存会承担大部分数据访问的压力,数据库已经习惯了有缓存的日子,所以当缓存服务崩溃时,数据库会因为完全不能承受如此大的压力而宕机,进而导致整个网站不可用,这种情况被称作缓存雪崩。实践中,有的网站通过缓存热备等手段提高缓存可用性。通过分布式缓存服务器集群,将缓存数据分布到集群多台服务器上可在一定程度上改善缓存的可用性。 (5)缓存预热 缓存中存放的是热点数据,热点数据又是缓存系统利用LRU(最近醉酒未使用算法)对不断访问的数据筛选淘汰出来的,这个过程需要花费较长的时间。新启动的缓存系统如果没有任何数据,在重建缓存数据的过程中,系统的性能和数据库负载都不太好,那么最好在缓存系统启动时就把热点数据加载好,这个缓存预加载手段叫做缓存预热。 (6)缓存穿透 如果因为不恰当的业务,或者恶意攻击持续高并发地请求某个不存在的数据,由于缓存没有保存该数据,所有的请求都会落到数据库上,会对数据库造成很大压力,甚至崩溃。一种简单的对策是将不存在的数据也缓存起来(其value值为null)。