大型网站的性能提升(测试)

大型网站的性能:
直观来说,性能就是访问速度快慢。具体来说,性能就是一个用户从输入网址按下回车键看到网页显示在眼前所经过的时间快慢。
在这里插入图片描述
用户访问网站的整个流程:
用户输入网站域名,通过DNS解析,找到目标服务器IP,请求数据经互联网达到目标服务器,目标服务器收到请求数据,进行处理(执行程序、访问数据库、文件服务器等)。处理完成后,将响应数据经互联网返回用户浏览器,浏览器得到结果进行计算渲染显示给用户。
分为三段路径:
第一段路径:在用户和浏览器端,主要负责发出用户请求,以及接受响应数据进行计算渲染显示给用户;
第二段路径:在网络上,负责对请求数据、响应数据的传输;
第三段路径:在网站服务器端,负责对请求数据进行处理(执行程序、访问数据库、文件等),并将结果返回。

第一段路径

所花费的时间包括用户输入域名发起请求的时间和浏览器收到响应后计算渲染的时间。
输入域名发起请求的过程是:
1、用户在浏览器输入要访问的域名;
2、本地DNS请求网站授权的DNS服务器对域名进行解析,并得到解析结果即IP地址(并将IP地址缓存起来);
3、想目标IP地址发出请求。
以上过程中需要优化的地方主要是减少DNS解析次数,而如果用户浏览器设置了缓存,则再第二次访问相同域名的时候就不会去请求DNS服务器,直接用缓存中的IP地址发出请求。这个过程取决于浏览器的设置,现在主流的浏览器默认设置了DNS的预取功能(DNS Prefetch)。
浏览器将数据进行计算渲染的过程:
1、浏览器解析响应数据;
2、浏览器创建DOM数;
2、浏览器下载CSS样式,并应用到DOM树,进行渲染;
4、浏览器下载JS文件,开始解析执行;
5、显示给用户。
这个过程有不少地方可以优化。首先可以尽量控制页面大小,使得浏览器解析的时间更短;并将多个CSS文件、JS文件合并压缩减少文件下载次数和大小;另外注意 、将CSS放在页面前面,JS访问页面后面,这样便于页面能先渲染出来,再执行JS脚本,对于用户来说有更好的体验。最后我们还可以设置浏览器缓存,下次访问时从缓存读取内容,减少http请求。

<meta http-equiv="Cache-Control" content="max-age=5" />

该代码说明了浏览器启用了缓存,并在5秒之内不会再次访问服务器。注意缓存的设置要结合你的业务特性来适当配置

第二路径

第二路径在网络上,时间花费包括请求数据的传输时间和响应数据的传输时间,这两个时间取决于数据传输的速度。(带宽)
带宽速度分为上行、下行速度,也就是上传和下载的速度。带宽20M对于用户来说则是下载速度20M(2010241024比特率),换算成字节为20/8=2.5M。也就是说20M带宽的下载速度理论可达2.5M/s,而对于家庭用户而言上传速度一般比下载速度小的多,大约是不到十分之一。而对于网站服务器(企业用户)则不然,一般上行速度等于下载速度。这也是运营商根据实际需求分配的,毕竟用户的主要需求是下载数据,不是上传数据。
这个流程从传输方式看就是:用户发送请求数据(上传),网站服务器接收请求数据(下载),网站服务器返回响应数据(上传),用户接收响应数据(下载)。对于用户来说,上传数据是很小的(url参数),而下载数据是较大的(响应数据);对于服务器来说恰恰相反。
用户的上传下载速度无法决定,能够决定的是网站服务器的上传、下载速度。我们可以适当的增加服务器带宽(带宽很贵,盲目增加智慧增加不必要成本)。购买合适的带宽需要根据网站业务特性、规模以及运维人员的经验来选择。通常可以考虑的算法,即根据一次响应数据的大小,乘以PV数,除以对应的高峰时间段,从而大致估算出网站带宽的需求
下面我们继续进一步研究第二路径:
在这里插入图片描述
上图表示用户访问网站服务器时网络的大致情况,从图上可以看出假设网站服务器从电信网络接入,而用户A作为电信的宽带用户,则可以通过电信骨干网快速的访问到网站服务器。用户B,用户C作为移动和联通用户需要通过运营商的互联互通经过较长路径才能访问到服务器。
针对这种情况,我们可以采取以下方法来优化:
1:在各运营商发达的地区的IDC(互联网数据中心,可以理解成机房)部署网站服务器,各运营商的用户即可通过各自的骨干网访问服务器。
2:购买代理服务,也就是原来联通用户需要通过联通骨干网——>联通互联互通路由器——>电信骨干网——>网站服务器的过程。通过代理服务,代理服务器直连到电信骨干网,访问网站服务器。
3:在主要地区城市购买CDN服务,缓存对应的数据,用户可先从最近的CDN运营商获取请求数据。

第三路径

第三路径主要是网站服务器内部处理的过程,当中包括执行程序、访问文件、数据库等资源,这是对于我们来说最可以发挥的地方:
1:使用缓存,根据需要使用本地缓存或分布式缓存;
2:使用异步操作,这种方式不仅可以提高性能,也提高了系统的扩展性;
3:代码优化;
4:存储优化;
缓存
如果缓存数据较少,可以利用OSCache实现本地缓存:
在这里插入图片描述
当缓存数据过多时,利用Memcached实现分布式缓存:Memcached实现分布式缓存,缓存服务器之间是互不通信的,也就是我们可以方便的通过增加Memcached服务器对系统进行扩展。
在这里插入图片描述
异步操作
在这里插入图片描述
使用同步请求的方式,在高并发的情况下,会对数据库造成很大的压力,也会让用户感觉响应时间过长。异步请求方式,则可以快速的对用户做出响应,而具体的数据库操作请求,则通过消息队列服务器发送给数据库服务器,做具体的插入操作。插入操作的结果则已其他方式通知客户端。例如一般在订票系统当中,出票行为就是异步完成,最终的出票结果会以邮件或其他方式告知用户。
存储优化
大型网站中海量的数据读写对磁盘造成很大压力,系统最大的瓶颈还是在磁盘的读写。可以考虑使用磁盘阵列、分布式储存来改善存储的性能。
性能的指标和测试
上面通过解析用户访问网站的过程来思考怎么提高用户感知的性能,对于用户来言性能就是快和慢。但对于我们来说,不能这样简单描述,我们需要去量化他,用一些数据指标去衡量它。这里讲到几个名词:响应时间、并发量、吞吐量
响应时间:就是用户发出请求到收到响应数据的时间;
并发量:就是系统同时能处理多少用户请求;
吞吐量:就是单位时间内系统处理的请求数量;
为了通俗的了解这三个概念,我们以高速公路的收费站为例子:响应时间是指一辆车经过收费站的时间,也就是车辆从进入收费站、付钱、开闸、离开收费站的时间;并发量是指这个收费站同时能通行多少辆车,可以理解为收费站的出口数量。吞吐量是指:在一段时间内,这个收费站通往了多少了车。
在这里插入图片描述
以上内容转载至这里

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大型网站性能优化是指通过调整网站的技术架构和优化网站的各项性能指标,提升网站的访问速度和用户体验。《大型网站性能优化实战》是一本介绍大型网站性能优化实战经验的PDF书籍。 这本书的内容主要包括以下几个方面: 首先,介绍了大型网站性能优化的背景和意义。随着互联网的发展,大型网站的流量和用户数量不断增加,而网站性能的优化成为提升用户满意度和增加用户粘性的重要手段。 其次,该书详细介绍了大型网站性能优化的核心原则和方法。从前端优化、服务器优化、数据库优化等方面进行了系统的阐述。比如,前端优化包括减少HTTP请求、压缩资源、合并脚本等;服务器优化包括负载均衡、缓存设置、静态化页面等;数据库优化则包括索引优化、查询优化、表结构调整等。 接着,书中还提供了一些实战案例。通过介绍一些知名网站性能优化实践,读者可以学习到一些具体的优化方法和经验。这些案例涵盖了各个方面,包括淘宝、京东等大型电商网站,以及新浪微博、知乎等社交媒体平台。 最后,该书还提供了一些性能测试工具和监控工具的介绍。这些工具可以帮助网站管理员进行性能测试和实时监控,以便及时发现和解决性能问题。 总的来说,《大型网站性能优化实战》是一本介绍大型网站性能优化实践经验的宝藏。无论是网站开发者还是运维人员,都可以从中学习到一些实用的优化方法和技巧,来提升网站性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值